2016-06-26 74 views
0

這裏的屬性值是一段代碼如何找到一個元素

<span class="balance themecolor" data-balance="2800"> 

我正在尋找一種方法來提取數據平衡的值,並將其設爲變量x,但我完全不知道該怎麼做。我知道.val()的存在,但我不知道我是否可以將其應用於此代碼。我正在尋找一個長線解決方案。

+0

@ T.J.Crowder如何[如何使用JavaScript讀取HTML標記的屬性?](http://stackoverflow.com/q/6964909/1529630)不是重複的?答案與你的一樣:'attr'或'getAttribute'。 – Oriol

+0

@Oriol:這個問題有兩個部分:1.找到元素。 2.閱讀屬性。所以這個問題的答案不能完全回答這個問題。儘管如此,它可能會與其他公司結合使用。 –

回答

1

如果你正在使用jQuery(如你所提到.val()):

var x = $("[data-balance]").attr("data-balance"); 

或者如果你是不是:

var x = document.querySelector("[data-balance]").getAttribute("data-balance"); 

在這兩種情況下,[data-balance]是一個CSS選擇器元素;根據需要調整。例如,使用該元素,並假定其中任何一個類別都沒有其他元素,則可以使用.balance,.themecolor或甚至.balance.themecolor

jQuery將查找與選擇器匹配的所有元素(如果這是一個問題,您可以更改它,通常不是),但只會爲您提供第一個屬性值。

querySelector將停止第一個。如果你想找到他們並得到一個列表,使用querySelectorAll(然後索引它來獲取個人)。

+0

'jQElem.data('balance')'?或者用JavaScript,'Element.dataset.balance'? – Rayon

+0

我同意人造絲的清潔劑使用.data訪問器 – havardhu

+1

@Rayon:我努力避免使'.data(「foo」)'只是'.attr(「data-foo」)的簡寫形式延續下去的神話' 。 **不是。**它做了很多工作,並且保留了一些東西。在我看來,最好只做這件事,並且當你需要jQuery的'data'功能的特性時就消耗這些內存。重新'數據集',那麼你必須進入一個完整的瀏覽器支持的事情,因爲**可惜**,還有**仍針對IE8的人(天堂幫助他們)... –