需要正确的jquery选择器

时间:2010-09-04 03:00:51

标签: jquery

我想将一个函数绑定到这个锚点,但似乎无法使选择器正确

这不起作用

$(function(){
$("a[onclick=='RemoveCCard_OnClick(event);']").bind('click', function() {
alert("");
return false;
});
});



<span style="display: block;" id="span_remove_selected_ccards">
<a style="color: rgb(153, 153, 153);" onclick="RemoveCCard_OnClick(event);" href="javascript: void(0);">
<span class="PageText_L31n">remove selected</span></a>
<input type="hidden" value="1968" name="remove_ccardid" id="remove_ccardid">
</span>

3 个答案:

答案 0 :(得分:3)

当您使用Attribute Equals Selector

时,应该只有一个'='
$("a[onclick='RemoveCCard_OnClick(event);']").bind('click', function() {
    alert("");
    return false;
});​

演示:http://jsfiddle.net/ucHuY/

答案 1 :(得分:1)

我建议使用一个更简单的选择器,而不是查看onclick属性,如下所示:

$("#span_remove_selected_ccards > a").click(function() {
  return false;
});

这在父元素上使用#ID selector然后获取> (immediate child) <a>来绑定事件。传递函数时,.click()只是.bind('click')的快捷方式。此外,从ID选择器降序比查找属性更快,这将抓取页面中的所有锚点。

答案 2 :(得分:0)

不要像那样使用属性选择器。如果您需要将事件处理程序附加到特定元素,请为其指定class,如果它是唯一的,则为id,如下所示:

<a id="unique" href="#">Look ma, I'm special!</a>
<a class="many" href="#">You can have lots and lots of me with the same class here</a>

然后使用以下选择器选择它们

$('#unique')
$('.many')