2012-01-19 3 views
1

각 div에 대해 .attr('class')을 선택하는 "Deltree"div에있는 .each 기능을 얻으려고 시도하고 있지만 그 값을 알려주지 만 첫 번째 deltree div의. 여기 내 테이블의 :jQuery. 테이블의 각 기능이 작동하지 않습니다.

<table width="100%" style="border:1px solid #ccc;"> 
<tbody> 

<tr id="links"><td id="linkname"><a href="http://www.vg.no">vg</a></td><td id="link"><a href="http://www.vg.no">http://www.vg.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="1" id="deltree">Slett</div></td></tr> 

<tr id="links"><td id="linkname"><a href="http://www.dt.no">test</a></td><td id="link"><a href="http://www.dt.no">http://www.dt.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="2" id="deltree">Slett</div></td></tr> 

<tr id="links"><td id="linkname"><a href="http://www.vg.no">vg2</a></td><td id="link"><a href="http://www.vg.no">http://www.vg.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="3" id="deltree">Slett</div></td></tr></tbody></table> 

여기 내 스크립트 : 그것은 그냥 다른 2 DIV 년대 클릭 할 때 나에게 경고하기를 거부

$(document).ready(function(){ 
$('#links').each(function() { 
    $('#deltree').click(function() { 
    var lid = $(this).attr("class"); 
    var dataString = 'lid='+ lid; 
alert(dataString); 
    }); 
    }); 
    }); 

, 나는 그 이유를 알아낼 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

+3

것으로, 동일한 ID를 갖는 복수의 요소를 가지고 정확하지 않다. –

+1

id가 고유하지 않으므로 id가 아닌 클래스로 deltree를 사용하십시오. –

+0

ID **는 고유해야합니다 **. –

답변

2

id은 페이지마다 고유해야하기 때문에 jQuery는 getElementById 함수를 사용하여 첫 번째 요소를 찾아 처리하고 중지합니다. 대신 name 속성과 적절한 jQuery 선택기 ($('div[name="deltree"]'))를 사용해야합니다.

샘플 코드

테이블 :

<table width="100%" style="border:1px solid #ccc;"> 
<tbody> 

    <tr id="links">... skipped ...<div class="1" name="deltree">Slett</div></td></tr> 

    <tr id="links">... skipped ...<div class="2" name="deltree">Slett</div></td></tr> 

    <tr id="links">... skipped ...<div class="3" name="deltree">Slett</div></td></tr></tbody></table> 

스크립트 :

$(document).ready(function(){ 
$('#links').each(function() { 
    $('div[name="deltree"]').click(function() { 
    var lid = $(this).attr("class"); 
    var dataString = 'lid='+ lid; 
alert(dataString); 
    }); 
    }); 
    }); 
+0

감사합니다! 클래스와 이름으로 바 꾸었습니다. =) – Havihavi

+1

@Havihavi. 학급과 이름으로 변경하지 마십시오. 그들 중 단 한 명은 ... ** (- : ** – gdoron

1

사용 클래스 대신 ID 다음에 $ (". classname ') 선택자. ID는 고유해야합니다.

1

동일한 요소가 여러 개일 경우 id은 실제로 어떤 일이 발생하는지 알 수 없습니다.
id은 고유해야합니다.

id 변화는 일반적인 방식 name

<table width="100%" style="border:1px solid #ccc;"> 
<tbody> 

<tr name ="links"><td id="linkname"><a href="http://www.vg.no">vg</a></td><td id="link"><a href="http://www.vg.no">http://www.vg.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="1" id="deltree">Slett</div></td></tr> 

<tr name="links"><td id="linkname"><a href="http://www.dt.no">test</a></td><td id="link"><a href="http://www.dt.no">http://www.dt.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="2" id="deltree">Slett</div></td></tr> 

<tr name="links"><td id="linkname"><a href="http://www.vg.no">vg2</a></td><td id="link"><a href="http://www.vg.no">http://www.vg.no</a></td><td>&nbsp;</td><td>&nbsp;</td><td><div class="3" id="deltree">Slett</div></td></tr></tbody></table> 

$(document).ready(function(){ 
    $('input[name=links]').each(function() { 
     $('#deltree').click(function() { 
     var lid = $(this).attr("class"); 
     var dataString = 'lid='+ lid; 
     alert(dataString); 
     }); 
    }); 
    });  
관련 문제