![](/img/trans.png)
[英]jQuery $.data('n') returning blank, but $.attr('data-n') gets value
[英]cant get data From data-n in element
我有這個Span
:
<span class="span-link" id="2" data-state="True" onclick="javascript: changestate(this.id);">Change State</span>
在Javascript函數中,我使用以下代碼獲取值:
function changestate(_thingid) {
alert(_thingid);
var tt = $(this).attr("data-state");
alert(tt);
}
我對data-state
undefinded
。 我通過$(this).data("state")
,因此也變得undefined
。
有什么問題嗎?
這是因為this
在這方面是指window
不具有任何屬性的對象。 您應該將元素傳遞給處理程序,並使用它代替this
關鍵字。
... onclick="changestate(this);"
function changestate(thing) {
var id = thing.id;
var tt = $(thing).attr("data-state");
alert(tt);
}
另一種選擇是使用傳遞的ID來選擇clicked元素,在這種情況下, this
不是一個好主意,因為this
已經引用了clicked元素。
由於您使用的是jQuery,因此也可以使用on
方法。 on
回調中的this
關鍵字指的是clicked元素。
$('span.span-link').on('click', function() {
var id = this.id;
var tt = $(this).data('data-state');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.