簡體   English   中英

無法從元素中的數據n獲取數據

[英]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');
});

您引用的是id,而不是對象,因此請將其更改為:

var tt = $('#'+_thingid).attr("data-state");

https://jsfiddle.net/6ne5b8zm/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM