所以我想設置一個元素的文本變量被點擊時,該元素:設置VAR與.text區段()
$('.clickme').click(function() {
var selected;
var selected = this.text();
});
我看過的文檔,我相信這應該工作。任何想法可能是什麼問題?
所以我想設置一個元素的文本變量被點擊時,該元素:設置VAR與.text區段()
$('.clickme').click(function() {
var selected;
var selected = this.text();
});
我看過的文檔,我相信這應該工作。任何想法可能是什麼問題?
嘗試:
var selected = $(this).text();
如果沒有運氣,也許是表單元素所以它的價值:
var selected = $(this).val();
如果仍然沒有運氣,讓我們知道了什麼是clickme
(DIV跨越? )並嘗試將其作爲「最後的手段」:
var selected = $(this).html();
@Thomas:'click'中的'this'指的是原始DOM節點,但'text'是一個函數的jQuery實例。這就是爲什麼Shadow Wizard將'this'傳遞給'$()'以將DOM節點包裝在jQuery實例中並訪問jQuery函數的原因。 – 2011-04-26 07:03:05
謝謝@ T.J澄清..如果這是表單元素,您可以使用原始DOM節點:'var selected = this.value;':) – 2011-04-26 07:12:04
if .clickme is i NPUT或textarea的:
var selected;
$('.clickme').click(function()
{
selected = $(this).val();
});
其他:
var selected;
$('.clickme').click(function()
{
selected = $(this).text();
});
你需要用的this
與jQuery對象...
var selected = $(this).text();
如果你的聽衆是上的按鈕,IE沒有按不知道文本和之間的差異值屬性和jQuery沒有修復它,getAttribute也沒有幫助。您需要使用getAttributeNode:
<button value="the value"
onclick="alert(this.getAttributeNode('value').value);">The text</button>
在你的榜樣,你宣稱'selected'兩次(使用'var'兩次)。當你首次聲明變量時,你應該只使用'var'。 – kapa 2011-04-26 06:58:59
@bazmegakapa:你絕對正確。這是無害的,但(這實際上是在規範中)。你可以自由使用'var',它完全被忽略。 (只是'var'部分;它上面的任何初始化器都被視爲一個賦值。)更多信息:http://blog.niftysnippets.org/2008/03/poor-misunderstood-var.html – 2011-04-26 07:02:01
@ T.J。非常感謝 :)。從來沒有試過寫兩遍,我學到了一些新東西。 **所以:**這是可能的,但從來不是一個好主意,因爲它是不合邏輯的。 – kapa 2011-04-26 07:06:02