在不使用类的情况下计算div

时间:2011-09-20 14:53:16

标签: jquery jquery-selectors

我试图在不使用类名的情况下计算组中的给定数量:

<div class="item" id="home1">home 1 text here</div>
<div class="item" id="home2">home 2 text here</div>
<div class="item" id="home3">home 3 text here</div>
<div class="item" id="home4">home 4 text here</div>

我试过这个

alert($(['id^="home"']).length);

但它一直给我0

有没有更合适的方法呢?

6 个答案:

答案 0 :(得分:6)

语法错误,试试这个:

alert($('[id^="home"]').length);

答案 1 :(得分:1)

如果您的div是包含元素中的所有兄弟姐妹,则可以$('.parentClass').find('div').length;

答案 2 :(得分:0)

您的单引号位于错误的位置。你把它们放在方括号内。它们需要在括号之外。

试试这个

alert($('[id^="home"]').length);

示例: http://jsfiddle.net/jasongennaro/dVtzx/

答案 3 :(得分:0)

你的选择器错了

alert($("[id^='home']").length);

http://jsfiddle.net/zPBv5/

答案 4 :(得分:0)

我会将div包装在另一个div中,并给包装器一个id。 然后只在这个包装器中计算div。

<div id="wrapper">
    <div class="item" id="home1">home 1 text here</div>
    <div class="item"id="home2">home 2 text here</div>
    <div class="item" id="home3">home 3 text here</div>
    <div class="item" id="home4">home 4 text here</div>
</div>

这也会更有效率。因为它使用#wrapper找到getElementById,然后只在它的子节点上运行,而不是在整个文档的元素上运行,搜索id模式。

 alert($("#wrapper .item").length);

答案 5 :(得分:0)

您的问题似乎已经解决(错位括号)但除了使用id子字符串之外,还有其他方法可以选择元素。

<div id="homeDiv">
    <div class="item" id="home1">home 1 text here</div>
    <div class="item" id="home2">home 2 text here</div>
    <div class="item" id="home3">home 3 text here</div>
    <div class="item" id="home4">home 4 text here</div>
</div>

JS:

$("#homeDiv .item"); //If they are wrapped in a div, specify that and use descendant selection

<div class="item home" id="home1">home 1 text here</div>
<div class="item home" id="home2">home 2 text here</div>
<div class="item home" id="home3">home 3 text here</div>
<div class="item home" id="home4">home 4 text here</div>

JS:

$("div.item.home"); //Elements can have multiple classes
$(".home");  //And you can use any class name to select them.