我试图在 jQuery 中选择所有具有相同 ID 的 <div>。我该怎么做?
<div>
我试过了,但是没有用
jQuery('#xx').each(function(ind,obj){ //do stuff; });
您的文档不应该包含具有相同 id 的两个 div。这是 无效的 HTML,因此底层 DOMAPI 不支持它。
来自 HTML 标准:
Id = name [ CS ]此属性赋值 元素的名称。此名称必须 在文件中是唯一的。
您可以为每个 div 分配不同的 id,并使用 $('#id1, #id2)选择它们。或者将相同的类分配给两个元素(例如 .cls) ,并使用 $('.cls')选择它们。
$('#id1, #id2)
.cls
$('.cls')
你能为每个不同的计时器分配一个唯一的 CSS 类吗?这样,您可以使用 CSS 类的选择器,它可以很好地处理多个 div元素。
div
我将使用不同的 ID,但是为每个 DIV 分配相同的类。
<div id="c-1" class="countdown"></div> <div id="c-2" class="countdown"></div>
这还有一个额外的好处,就是能够根据 jQuery (“ . count”) . length 的返回值重新构建 ID
好吧,那么在每个倒计时器上添加多个类呢:
<div class="countdown c-1"></div> <div class="countdown c-2"></div> <div class="countdown c-1"></div>
这样你就可以同时得到两个世界的最好结果,它甚至允许重复“ IDS”
您还可以尝试用惟一 id 将两个 div 包装在两个 div 中。然后通过 $("#div1","#wraper1")和 $("#div1","#wraper2")选择 div
$("#div1","#wraper1")
$("#div1","#wraper2")
给你:
<div id="wraper1"> <div id="div1"> </div> <div id="wraper2"> <div id="div1"> </div>
虽然这里还有其他正确答案(比如使用类) ,但从学术角度来看,当然可以有多个 div 具有相同的 ID,并且可以使用 jQuery 选择它们。
当你使用
jQuery("#elemid")
它只选择具有给定 ID 的第一个元素。
但是,当按属性选择时(例如,在您的示例中是 身份证) ,它返回所有匹配的元素,如下所示:
jQuery("[id=elemid]")
这当然适用于任何属性的选择,您可以通过指定相关的标记(例如,在您的例子中是 Div)来进一步细化您的选择
jQuery("div[id=elemid]")
尝试这样通过第一个 id 选择 div
$('div[id^="c-"]')
$("div[id^=" + controlid + "]")将返回具有相同名称的所有控件,但是您需要确保文本不会出现在任何控件中
$("div[id^=" + controlid + "]")