2012-06-22 18 views
2
<html> 
<head></head> 
<body> 
<span class="mtb-price"> 
<label Class="mtb-ofr"><b class="lb1"></b>AAAAA</label></span> 
<script> 
var sku = document.getElementsByClassName("mtb-ofr").childNodes[1].nodeValue; 
alert(sku); 
</script> 
</body> 
</html> 

如何使用document.getElementsByClassName()訪問childNode的類名'mtb-ofr'? 和什麼應該是document.getElementsByClassName()的替代獲得相同的結果?如何使用document.getElementsByClassName()訪問<label>的childNode?

+2

'document.getElementsByClassName( 「MTB-OFR」)[0] .childNodes'?或者只是'.children'。 – sachleen

+2

getElementsByClassName返回一個數組,你需要選擇數組中的一個項目,然後才能向下鑽取任何更深的 – jackwanders

+0

基本上我想要的是用一些其他文本替換AAAAA。 –

回答

2

改變標籤的文本:

document.getElementsByClassName("mtb-ofr")[0].childNodes[1].nodeValue = 'something'; 
0

使用jQuery!

$('label.mtb-ofr').children() 

你完成了!

而且你可以通過傳遞參數給children()來過濾更多。

http://api.jquery.com/children/

+0

嘿多數民族衆多,但我想使用JavaScript。 –

+0

雖然我喜歡jQuery,但我認爲除非你真的要充分發揮它的潛力,否則我不認爲你應該爲它做所有事情。我們不知道這裏......所以一個簡單的JS解決方案會更好。 – sachleen

+3

同意其他評論者,但這不值得downvotes imo – jbabey

2

getElementsByClassName返回一個數組。您需要首先從NodeList中獲取元素。

document.getElementsByClassName("mtb-ofr")[0].childNodes[1].nodeValue 
+1

-1沒有足夠的jquery – goat

+0

@rambocoder:只需添加一些'$'在那裏。 –

+0

@火箭嘿感謝它的作品。將這項工作在IE8中我的意思是document.getElementsByClassName() –

相關問題