鍍金池/ 問(wèn)答/HTML/ JQ 獲取動(dòng)態(tài)生成的元素集合?

JQ 獲取動(dòng)態(tài)生成的元素集合?

<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", "樂(lè)視"]
},
{
    "title": "尺寸",
    "data": ["4.0-4.5英寸", "4.6-4.9英寸", "5.0-5.5英寸", "6.0英寸以上"]
},
{
    "title": "系統(tǒng)",
    "data": ["android", "ios", "window phone", "無(wú)", "其他"]
},
{
    "title": "網(wǎng)絡(luò)",
    "data": ["聯(lián)通3G", "雙卡單4G", "雙卡雙4G", "聯(lián)通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();//每行l(wèi)i的下標(biāo)
    $(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>'
        // 生成結(jié)構(gòu)的時(shí)候在行間保存對(duì)象的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標(biāo)簽的元素集合。
使用原生JS
var chooseElement = document.querySelector("#choose div");
var chooseA = chooseElement.querySelectorAll("a");
console.log(chooseA);
原生JS結(jié)果:
clipboard.png

我用了 JQ來(lái)獲取
var chooseA = $("#choose div").find("a"); //找到所有的a
console.log(chooseA);
找出來(lái)不對(duì)了?

回答
編輯回答
心癌

怎么不對(duì)呢,是為空還是其他的

2017年1月29日 19:11
編輯回答
互擼娃

把查找a的代碼添加在mark生成后


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>'
        // 生成結(jié)構(gòu)的時(shí)候在行間保存對(duì)象的key值
        // html += `<mark>${chooseObj[k]}<a data-index="${k}" href="javascript:;">x</a></mark>`
    }
}



$("#choose div").html(html);

var chooseA = $("#choose div").find("a");

console.log(chooseA);
console.log(chooseA.length);
2018年3月11日 07:24