当有多个具有相同“id”的元素时,jQuery如何工作?

当有多个具有相同“id”的元素时,jQuery如何工作?

我从Google的AdWords网站上获取数据,该网站包含多个相同的元素id

你能否解释为什么以下3个查询不能得到相同的答案(2)?

现场演示

HTML:

<div>
    <span id="a">1</span>
    <span id="a">2</span>
    <span>3</span></div>

JS:

$(function() {
    var w = $("div");
    console.log($("#a").length);            // 1 - Why?
    console.log($("body #a").length);       // 2
    console.log($("#a", w).length);         // 2
    });


智慧大石
浏览 1232回答 3
3回答

喵喔喔

jQuery的id选择器只返回一个结果。第二和第三语句中的descendant和multiple选择器旨在选择多个元素。它类似于:声明1var&nbsp;length&nbsp;=&nbsp;document.getElementById('a').length;......产生一个结果。声明2var&nbsp;length&nbsp;=&nbsp;0;for&nbsp;(i=0;&nbsp;i<document.body.childNodes.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(document.body.childNodes.item(i).id&nbsp;==&nbsp;'a')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length++; &nbsp;&nbsp;&nbsp;&nbsp;}}......产生两个结果。声明3var&nbsp;length&nbsp;=&nbsp;document.getElementById('a').length&nbsp;+&nbsp;document.getElementsByTagName('div').length;......还得出两个结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery