Back to the JavaScript

[jquery] attr : 태그속성 SET / GET - each 반복문 / remove /

Backcoder 2022. 8. 3. 18:51

1. <SET> attr 로 하나하나씩 속성주기

 

$(태그). attr ( A, B )

:  가져온 태그의 A속성에 B 를 넣어라 ( SET ) 

 

 

  $("img:first").attr ("src","blackcoffee.gif");
: 가져온 img 태그의 src 속성에 저 속성값을 넣어라. :  src = "balckcoffee.gif"  사진 가져와짐 

 

  $("img").attr("width", "100");
  $("img").attr("height", "100");
  $("img:first").attr("alt","쥬스 사진입니다");

2. 객체형태로 만들어서 한 방에 set 할 수도 있다.

 

 $("img:last").attr (

{
  src : "blackcoffee.gif",
  alt : "커피사진입니다.",
  width : "200",
  height : "200"
  }

);

 

 

<GET>
$('img:first').attr("src")
: img 태그에서 속성 src 의 속성값을 가져와라 => "blackcoffee.gif" 

 

[ 태그 여러 개 일때 ] 
alert($('img').attr("src"));
: img 태그의 src 속성 가져와 
=> attr는 복수개에서 사용시 첫번째거 하나만 가져온다

=> 반복문으로 뽑아야함

 ( eq 함수 활용! ( index ) )

 

1. eq 인덱스 사용 해서 뽑기 

 

 $('img').length

: 모든 img 태그 찾아서 몇개인지 가져와줌 

 

for(let i = 0; i < $('img').length; i++){
alert( $( 'img:eq(' + i + ')').attr("src")); }

 

- i 는 변수므로 따옴표 끊어서 처리해야함

 


2. jquery전용 반복문 each  ( foreach구문과 비슷 ) 

each ( function( i ){ 반복할문장 i 번만큼 } )

 

- i 가 몇번인지 안줘도됨.  값이 있는 동안을 의미 

$('img').each( function(i) {
  alert( $('img:eq('+ i +')').attr("src"));  })
: img 태그인거 찾아서 있는동안, i 번 인덱스에 해당하는 것의 src를 알려줘. 


< JS (돔방식) this 사용 >
$('img').each(function(i){
  alert( this.src );  })

: img 태그 찾아서 매번 현재 태그의 src 를 가져와줘

 

< jquery 로 this 사용 >

- $(    )  에 넣어주면 
JS 객체를 jquery 객체로 가져오는 것!  

this   ==   $(this)   


$('img').each(function(i){
  alert( $(this).attr("src") );  })
: 현재 태그에서 속성이 src 인거 가져와줘

 

 

[ 속성 제거 ] 
: removeAttr 

- 지울땐, 복수개여도 반복문 필요없음 ( 다 지움 ) 
$("img").removeAttr("src");

: 모든 img 태그에서 src 속성 지워줘. 

 

 

- attr를 이용해 태그의 각종 속성들을 Set /Get / remove 할 수 있다.

하지만, Set 으로 속성을 줄 때, 하나씩 만 줄 수있다. ( 전체적용 X )

 

class 같은 속성은 같은 태그에 한 방에 다 줘놓고, 조종하면 편한데, 

attr 로는 하나하나 줘야 해서 불편하다. 

 

=> class 는 따로 한방에 모든태그에 속성 추가하는걸 만들어둠. 

 

< addClass > 

$("h1").addClass("box");

: h1 모든태그에 class 속성값 box 추가해줘 

 

< removeClass >
$("h1").removeClass("box");
: h1 모든태그에 class 속성값 box 삭제해줘