在你的浏览器中打开以下网址:http://www.forever21.com/Checkout/Basket.aspx?br=f21
然后将以下内容粘贴到控制台中:
var productDetails = function() {
var itemTitle = document.querySelector(".s_itemname > h1").textContent
var item = document.querySelectorAll("div.n_ck_s_itemoption_list")[1]
var color = item.querySelector("div > ul:nth-child(1) > li:nth-child(2)").textContent
var size = item.querySelector("div > ul:nth-child(2) > li:nth-child(2)").textContent
return {
itemTitle: itemTitle,
color: color,
size: size
}
}
然后测试它...
要学好Javascript,可以阅读MDN上的页面,并编写一些真实的程序,例如游戏。
var nodes = document.querySelectorAll(".n_ck_s_itemoption_list > div > ul li:last-child");
var text = '';
for(var item in nodes) {
if (nodes.hasOwnProperty(item)) {
console.log(nodes[item].innerHTML);
text += nodes[item].innerHTML + ', ';
}
};
alert(text);
<div class="n_ck_s_itemoption_list">
<div>
<ul>
<li>color</li>
<li>BLACK</li>
</ul>
<ul>
<li>size</li>
<li>Large</li>
</ul>
</div>
</div>
编辑:这个问题变得混乱是因为在@zelcon5的评论中发布的网站有两个具有相同类名的div元素...其中只有一个设置了display:none
,无论如何,请使用以下内容:
var nodes = document.querySelectorAll(".n_ck_s_itemoption_list > div > ul li:last-child");
var text = '';
for(var item in nodes) {
if (nodes.hasOwnProperty(item) && nodes[item].parentElement.parentElement.parentElement.style.display !== "none") {
alert(nodes[item].innerHTML);
text += nodes[item].innerHTML + ', ';
}
};
alert(text);
试试这段代码
var uls=document.querySelector(".n_ck_s_itemoption_list").getElementsByTagName('ul');
uls[0].getElementsByTagName('li')[0].textContent //retun "color"
uls[0].getElementsByTagName('li')[1].textContent //retun "Black"
uls[1].getElementsByTagName('li')[0].textContent //retun "Size"
uls[1].getElementsByTagName('li')[1].textContent //retun "Large"