Jquery
Jquery - 속성 변경(1) : 클래스, 태그
휼양
2022. 11. 16. 19:01
1. 클래스 속성 변경
addClass() | 지정한 element에 클래스 추가하는 함수 |
removeClass() | 지정한 element에 클래스 삭제하는 함수 |
toggleClass() | 지정한 element에 클래스 있으면 삭제, 없으면 추가하는 함수 |
<div id="container">
<h1 class="a">h1이야</h1>
<p>p1</p>
<p>p2</p>
<span class="a">span</span>
<h2>h2</h2>
</div>
<button class="btn btn-outline-primary" onclick="addClassTest();">addClass()</button>
<button class="btn btn-outline-warning" onclick="removeClassTest();">removeClass()</button>
<button class="btn btn-outline-danger" onclick="toggleClassTest();">toggleClass()</button>
<style>
.a0{
color:red;
}
.a1{
color:orange;
}
.a2{
color:yellow;
}
.a3{
color:blue;
}
.a4{
color:green
}
.b0{
background-color:purple;
}
.a{
font-size:30px;
font-weight:bolder;
}
</style>
<script>
const addClassTest=()=>{
// $("div#container>*").addClass("a1");
// $("div#container>*").addClass("a1 b0");
$("div#container>*").each((i,v)=>{
$(v).addClass(`a${i} b0`);
})
}
const removeClassTest=()=>{
$("div#container>*").removeClass(function(index,val){
return `a${index} b0`;
});
}
const toggleClassTest=()=>{
$("div#container>*").toggleClass("a");
}
</script>
2. 태그 속성 변경
attr("속성명") | 매개변수명과 동일한 속성의 값을 출력해주는 함수 |
attr("속성명","속성값") | 속성명에 속성값을 대입해주는 함수 |
attr({속성명:속성값,속성명:속성값....}) | 객체로 전달된 모든 속성에 속성값을 설정하는 함수 |
attr("속성명",function(i,v){ return 속성값 }) | 전달된 속성명에 함수의 반환값을 속성값으로 설정하는 함수 |
[기본]
<div id="container2">
<img src="https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab487616b58f7bf017e58d417ccb3283deeb3" alt="" width="200" height="200">
<input type="text" name="test">
</div>
<button onclick="getAttr();">속성값 가져오기</button>
<button onclick="setAttr();">속성값 설정하기</button>
<button onclick="setAttrObj();">속성값 다수 설정하기</button>
<button onclick="setAttrFunc();">속성값 함수로 설정하기</button>
<button onclick="removeAttrTest();">속성삭제하기</button>
<script>
const getAttr=()=>{
const src=$("div#container2>img").attr("src");
console.log(src);
const width=$("div#container2>img").attr("width");
const height=$("div#container2>img").attr("height");
console.log(width,height);
const type=$("#container2>input").attr("type");
console.log(type);
//input태그의 value값은 attr()함수로 가져오지 않습니다.
// const value=$("#container2>input").attr("value"); XXX
//val()함수를 이용해야한다.
const value=$("#container2>input").val();
console.log(value);
}
const setAttr=()=>{
const img=$("<img>").attr("src","https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab487616b58f7bf017e58d417ccb3283deeb3");
img.attr("width","400");
img.attr("height","400");
$("#container2").append(img);
}
const setAttrObj=()=>{
const div=$("<div>").addClass("container");
const label=$("<label>").attr("for","userId");
label.text("아이디")
const input=$("<input>");
input.attr({
"type":"text",
"name":"userId",
"id":"userId"
});
div.append(label);
div.append(input);
$("#container2").append(div);
}
const setAttrFunc=()=>{
const imgs=$("#container2>img");
imgs.attr("width",function(i,v){
console.log(i, v);
return Number(v)+100;
})
}
const removeAttrTest=()=>{
$("#container2>img").removeAttr("src");
}
</script>
[응용 - 체크박스]
<div id="checkcontainer">
<input type="checkbox" name="lang" value="html">html
<input type="checkbox" name="lang" value="css">css
<input type="checkbox" name="lang" value="javascript">javascript
<br>
<input type="checkbox" name="lang" value="jquery">jqeury
<input type="checkbox" name="lang" value="servlet">servlet
</div>
<button onclick="checkboxCheck();">빈박스 모두체크</button>
<script>
const checkboxCheck=()=>{
$("#checkcontainer>input").each((i,v)=>{
const flag=$(v).prop("cheked");
if(!flag) $(v).prop("checked",true);
else $(v).prop("checked",false);
})
}
</script>