我在頁面中有下面的div(我無法修改)。添加jQuery點擊處理程序
<div id=":0.control">Click me</div>
現在我想添加一個jQuery Click處理
$("#:0.control").click(function() {
alert('Clicked');
}
);
上面給出錯誤。任何解決方案取而代之的
$("#:0.control")
我在頁面中有下面的div(我無法修改)。添加jQuery點擊處理程序
<div id=":0.control">Click me</div>
現在我想添加一個jQuery Click處理
$("#:0.control").click(function() {
alert('Clicked');
}
);
上面給出錯誤。任何解決方案取而代之的
$("#:0.control")
談談代碼維護!很好的答案,但是對於那些在閱讀他的代碼時會偶然發現的人感到抱歉。 – frenchie
謝謝它的作品 – Manjoor
@ Manjoor不客氣 – thecodeparadox
您可以選擇特殊字符轉義:
$("#\\:0\\.control").click(function() {
alert('Clicked');
});
這裏有一個working example。
請注意,除非您使用HTML5文檔類型,否則您的ID無效。還要注意的是逃避特殊字符是significantly faster比使用屬性選擇在另一個答案:
這樣做的原因是,瀏覽器可以採取的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
});
你的ID是無效的,但如果你不能改變你必須找到一些其他的方式,DIV標記......您可能需要張貼整個HTML代碼 – fcalderan
奇怪的名字,我不確定這個名字甚至是有效的。嘗試命名它control0可能是 – frenchie
我正在添加一個外部的google widget(一個外部的.js)。此代碼在代碼中。我想鉤住div來執行我自己的任務。 – Manjoor