使用Jquery每个函数,我正在解析一个名为myordersdiv
的div数据这是我的完整程序,如下所示
<script type="text/javascript">
var name;
var products = [];
$(document).ready(function() {
$.each($('#myordersdiv ul'), function(i, elem) {
name = $(elem).find("label").text();
if (name != 'undefined') {
//Creating product array
products.push({
'name': name
});
}
});
var orderjson = JSON.stringify(products);
console.log(orderjson);
});
</script>
</head>
<body>
<div id="myordersdiv" style="display: block;">
<ul>
<div id="ordersdiv" style="">
<div id="addtoordersdiv71">
<div class="prd-items-detials">
<ul>
<li class="head">
<form>
<input type="checkbox" name="checkbox-mini-0" id="71">
<label class="testtt" for="checkbox-mini-0">Regular, 50 Ml</label>
</form>
</li>
</ul>
</div>
</div>
</div>
</ul>
</div>
</body>
</html>
当我运行上述程序时,输出
[{"name":"Regular, 50 Ml"},{"name":"Regular, 50 Ml"}]
显示数组下的两个元素。
但我只有一个常规元素,在myordersdiv下只有50毫升
有人可以告诉我为什么我会得到两个元素?
这是我的小提琴
答案 0 :(得分:3)
ul
内有两个#myordersdiv
,因此each
会迭代两次。在外ul
和内ul
上方。
你可能想要的是选择器$("#myordersdiv > ul")
。这只会点击ul
,它们是#myordersdiv
的直接子项。