2013-07-05 65 views
4

這裏後是HTML代碼調用jQuery的功能單擊某個元素

<p onclick='javascript:func(this);'>Bla bla bla</p> 

這裏是腳本(這是寫在文件頭)。

function func(e) { 
    var t = e.text(); 
    console.log(t); 
} 

它不起作用,我不明白爲什麼。錯誤消息是「Object#has no method'text'」。

+0

嘗試.innerHTML – Sergio

+0

我看不出有任何的jQuery。 –

回答

5

將它包裝在jQuery包裝中。 .text()是一個jQuery方法,您的元素e是一個純JavaScript DOM元素,因此您需要jQuery包裝器。

var t = $(e).text(); 

備註:不顯眼的事件處理程序分配優先於內聯處理程序。例如:

$(document).ready(function(){ 
    $('p').click(function(){ 
     var t = $(this).text(); 
     console.log(t); 
    }); 
}); 

上面用了jQuery分配的點擊處理程序(而不是內聯的Javascript)等正因爲如此,該元件可以在this爲平原Javascript對象,或$(this)訪問用於jQuery對象。

+0

非常感謝。有用。 – enjaku

0

Fiddle

這是普通的JavaScript,並會做你要求什麼。

function func(e) { 
    var t = e.innerHTML; 
    console.log(t); 
} 
0

嘗試使用innerHTML

function func(e) { 
    var t= e.innerHTML; 
    console.log(t); 
} 
+0

對不起,如果你剛剛自己編輯它,但它是在LQP審查名單;-) –

0

使用innerText,如果你不使用jquery。

function func(e) { 
    var t = e.innerText; 
    console.log(t); 
} 
0

正確的做法是:

HTML:中

<p onclick='func(this);'>Bla bla bla</p> 

代替

<p onclick='javascript:func(this);'>Bla bla bla</p> 

的Javascript:

function func(e) { 
    var t = e.innerHTML; 
    console.log(t); 
} 
0

jquery被設計爲不顯眼。如果您在任何地方添加onclick屬性都會導致錯誤。

相反,你應該添加事件監聽器

<p>Blah Blah Blah</p> 

的Jquery/SCRIPT

$(document).ready(function(){ 
    $('p').on('click', function(){ 
     console.log($(this).text()); 
    }); 
}); 
相關問題