我想使用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>
提前致谢。
答案 0 :(得分:6)
使用jQuery filter
方法。
$('*').filter(function () {
return this.id.match(/Q\d+/); //regex for the pattern "Q followed by a number"
}).length;
答案 1 :(得分:3)
答案 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);
});