我想将click事件添加到`id = <!>“violacao <!>”的所有元素:

$(document).ready(function () {
    jQuery('#violacao').click(function() {
        alert('teste');
    });
});

但只是第一个链接响应了点击。这是生成的HTML:

<tr>
  <td><a href="#" id="violacao">40954589</a></td>
  <td>Perda de Comunicação</td>
</tr>

<tr>
  <td><a href="#" id="violacao">88692020503</a></td>
  <td>Perda de Comunicação</td>
</tr>

当我尝试这种方式时:

jQuery("a").click(function() {
    alert('teste');
});

除了所有链接都受到影响外,它工作正常。有什么问题?

有帮助吗?

解决方案

HTML中的ID应该是唯一的(每个文档一个)。将ID更改为类(并使用。而不是#),它应该可以工作。

其他提示

虽然史蒂夫梅森说这是真的,但实际问题并非如此。

如果您将ID更改为类,则问题仍然存在:所有链接都会受到影响。

相反,如果您的目标是影响一个<!> lt; A <!> gt;,则应执行以下操作之一:

a)为每个<!> lt; A <!> gt;分配唯一的ID,然后执行类似于您先做的事情;或

b)分配类并使用:first selector:

jQuery("a.violacao:first").click( function (){
  alert('teste');
} );

这将适用于第一个与类violacao匹配的锚点。或者,如果要影响特定锚点,可以使用:eq(index)。

有关选择器的完整列表,请访问 http://docs.jquery.com/Selectors

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top