2012-01-19 45 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> 

這裏是我的腳本:

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

它只是拒絕提醒我,當我點擊其他2個div的,我想不通爲什麼。任何幫助不勝感激。

+3

從總體上看,這是不正確的具有相同ID的多個元素。 –

+1

使用deltree作爲類而不是id,因爲id意味着獨特。 –

+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

@哈維哈維。不要改成班級和名字。其中只有一個...... **( - :** – gdoron

1

使用類,而不是ID,然後是$(「。classname」)選擇器。 ID必須是唯一的。

1

當你有多個元素相同id你真的不知道會發生什麼。
id應該是唯一的。

變化idname

<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); 
     }); 
    }); 
    });