Подсчет div без использования класса - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь подсчитать количество отданий в группе без использования имени класса:

<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 ]

6 голосов
/ 20 сентября 2011

синтаксическая ошибка, попробуйте это:

alert($('[id^="home"]').length);
1 голос
/ 20 сентября 2011

Если ваши div-ы - это все братья и сестры в содержащем элементе, вы можете сделать $('.parentClass').find('div').length;

0 голосов
/ 20 сентября 2011

Ваша проблема, кажется, была решена (неправильные скобки), но есть способы выбора элементов, кроме использования 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.
0 голосов
/ 20 сентября 2011

Я бы завернул 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, а затем запускается только для его дочерних элементов, а не для всех элементов документа, в поисках шаблона идентификатора.

 alert($("#wrapper .item").length);
0 голосов
/ 20 сентября 2011

вы ошиблись селектором

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

http://jsfiddle.net/zPBv5/

0 голосов
/ 20 сентября 2011

Ваши одинарные кавычки находятся не в том месте. У вас были они в квадратных скобках. Они должны быть за скобками.

Попробуйте это

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

Пример: http://jsfiddle.net/jasongennaro/dVtzx/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...