繁体   English   中英

添加jQuery Click处理程序

[英]Adding a jQuery Click handler

我在页面中有以下div(我无法修改)。

   <div id=":0.control">Click me</div>

现在我想添加一个jQuery Click处理程序

$("#:0.control").click(function () {
         alert('Clicked');
     }
 );

上面给出错误。 任何解决方案

代替

$("#:0.control")

尝试

$('div[id="\\:0\\.control"]')

DEMO

要么

$("#\\:0\\.control") // better that previous one

DEMO

您可以在选择器中转义特殊字符:

$("#\\:0\\.control").click(function () {
     alert('Clicked');
});​

这是一个有效的例子

请注意,除非您使用HTML5文档类型,否则您的ID无效。 另请注意,转义特殊字符要比使用属性选择器快得多 ,如另一个答案:

在此输入图像描述

这样做的原因是浏览器可以利用getElementById的速度,而不必依赖于querySelector或Sizzle。

这很难看,但它有效:

$(document.getElementById(":0.control"))

在情况下,当id存储在变量中时,您必须使用:

var id = ":0.control";
$(document.getElementById(id))

否则,当您想使用纯jQuery ,需要添加额外的斜杠。

更复杂的例子:

var idArray = [":bla-bla","bla[]","commonId"];
$.each( idArray, function(i,id){
    $(document.getElementById(id)) //do some stuff
    //Otherwise, when using pure jQuery, we need to add slashes before ':','[',']' characters 
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM