计算具有特定ID模式的元素数量

时间:2014-03-07 16:24:56

标签: javascript count

我想使用javascript来计算所有具有ID模式的元素:

  

“Q” +编号

并将结果返回到文本字段“result”。

说,我们有以下示例:

<div>
    <div id="Q01">
        <p>Some text</p>
    </div>
    <div id="Q02">
        <p>Some text</p>
    </div>
    <div id="Q03">
        <p>Some text</p>
    </div>

        <label for="number">Number of DIVs:</label>
        <input type="number" name="result" id="number">
</div>

提前致谢。

3 个答案:

答案 0 :(得分:6)

使用jQuery filter方法。

$('*').filter(function () {
    return this.id.match(/Q\d+/); //regex for the pattern "Q followed by a number"
}).length;

DEMO

答案 1 :(得分:3)

DEMO

document.querySelectorAll('[id^=Q]').length

警告:[id^=Q]包含以“Q”开头的ID,因此也会包含id="Question"

答案 2 :(得分:3)

我知道这已经得到了解答,但这是@ kei的答案的改进。不是使用$('*')过滤所有DOM元素,而是首先将其缩小到只有id以“Q”开头的元素。 @talemyn建议的另一个修改是在正则表达式的末尾添加$,以确保数字后面没有字符。

$(function () {
    var result = $('[id^=Q]').filter(function () {
        return this.id.match(/Q\d+$/); //regex for the pattern "Q followed by a number"
    }).length;

    $('input[name=result]').val(result);
});

DEMO