2016-06-20 145 views
-1

我有一個錨點元素,它沒有任何classid。我想添加一個點擊處理程序到該錨點元素。添加點擊功能錨點元素

'<'a href="dosmthng" > do something</a> 
var dosm = $('a[href^="dosmthng"]') //this works perfect it select anchor element 
$(dosm).click(function() { 
    alert(" click() called."); 
}); 

單擊功能將引發一個錯誤:

VM556763:211 Uncaught DOMException: Failed to execute 'querySelector' on 'Document'.

有沒有更好的方法有兩個實現這一點,我在下面的方式,但沒有運氣試過嗎?

P.S我無法更改文件中的HTML代碼。

+0

你能發佈你的實際HTML和JS代碼嗎?您在問題中提供的內容有點混亂。假設你的標記是正確的,你有什麼工作正常:https://jsfiddle.net/RoryMcCrossan/L8Lqb2qt/。檢查控制檯是否有錯誤。 –

+0

爲什麼不能''('click',function(){...});'?('''[href =「dosmthng」]')。 –

+0

@GuruprasadRao嘗試過,但它也給錯誤 – sar

回答

0

試試這個:

1)document.ready

2從HTML添加點擊事件)檢查錨標記,並刪除不必要的報價

$(document).ready(function(){ 
 
    var dosm = $('a[href^="dosmthng"]') //this works perfect it select anchor element 
 

 
    $(dosm).click(function(e) { 
 
     e.preventDefault(); 
 
     alert(" click() called."); 
 
    }); 
 
}); // doc-ready ends
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
<a href="dosmthng" > do something</a>

+0

如果這是問題不會有錯誤,那麼點擊處理程序根本就不會被連接。 –

0

我看到一個潛力問題..您在

末尾缺少分號
var dosm = $('a[href^="dosmthng"]'); 
+0

這是javascript,缺少分號沒有影響。 –

+0

嗯,哦,真的嗎?那麼請告訴我這個.. @ freedomn -m .. http://stackoverflow.com/questions/1834642/why-should-i-use-a-semicolon-after-every-function-in-javascript –

+0

在某些情況下它們可能不是必需的,但是解釋了不把它放入 –