<nav id="choose">
<span>你的选择:</span>
<div>
<mark>苹果<a class="a0" data-index="0" href="javascript:;">x</a></mark>
<mark>4.6-4.9英寸<a class="a1" data-index="1" href="javascript:;">x</a></mark>
<mark>window phone<a class="a2" data-index="2" href="javascript:;">x</a></mark>
<mark>双卡单4G<a class="a3" data-index="3" href="javascript:;">x</a></mark>
</div>
</nav>
jQ代码:
var crumbData = [
{
"title": "品牌",
"data": ["苹果", "小米", "锤子", "魅族", "华为", "三星", "OPPO", "vivo", "乐视"]
},
{
"title": "尺寸",
"data": ["4.0-4.5英寸", "4.6-4.9英寸", "5.0-5.5英寸", "6.0英寸以上"]
},
{
"title": "系统",
"data": ["android", "ios", "window phone", "无", "其他"]
},
{
"title": "网络",
"data": ["联通3G", "双卡单4G", "双卡双4G", "联通4G"]
}
];
var len = crumbData.length;
var chooseObj = {};
for (var i = 0; i < len; i++) {
$("#type").append('<li class="Li' + i + '"><span>' + crumbData[i].title + '</span></li>');
for (var j = 0; j < crumbData[i].data.length; j++) {
$(".Li" + i).append('<a href="javascript:;">' + crumbData[i].data[j] + '</a>')
}
$(".Li" + i + " a").on("click", function () {
var _index = $(this).parent().index();//每行li的下标
$(this).addClass("on").siblings().removeClass("on");
chooseObj[_index] = $(this).text();
console.log(chooseObj);
createChooseHtml();
});
}
function createChooseHtml() {
var html = '';
for (var k = 0; k < len; k++) {
console.log(chooseObj[k]);
if (chooseObj[k]) {
html += '<mark>' + chooseObj[k] + '<a class="a' + k + '" data-index="' + k + '" href="javascript:;">x</a></mark>'
// 生成结构的时候在行间保存对象的key值
// html += `<mark>${chooseObj[k]}<a data-index="${k}" href="javascript:;">x</a></mark>`
}
}
var chooseA = $("#choose div").find("a");
console.log(chooseA);
console.log(chooseA.length);
$("#choose div").html(html);
}
div里面的mark都是JS生成的,我想找到里面所有a标签的元素集合。
使用原生JS
var chooseElement = document.querySelector("#choose div");
var chooseA = chooseElement.querySelectorAll("a");
console.log(chooseA);
原生JS结果:
我用了 JQ来获取
var chooseA = $("#choose div").find("a"); //找到所有的a
console.log(chooseA);
找出来不对了?
把查找a的代码添加在mark生成后