1

我想将点击事件添加到 `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');
});

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

4

2 回答 2

19

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

于 2009-03-10T21:06:02.937 回答
1

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

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

相反,如果您的目标是影响单个 <A>,您应该执行以下操作之一:

a) 为每个 <A> 分配唯一的 ID,然后像你之前那样做;或者

b) 分配类并使用 :first 选择器:

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

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

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

于 2009-03-11T10:56:31.240 回答