我在javascript中有以下代码。
var contents = '<p>this is some text.<span class="Am"></span>This is som text<span class="Am"></span>This is some text<span class="Am"></span></p>';
现在我必须找到此字符串中span标记的出现次数,然后使用一个循环throgh这个数字。例如
function doStuff(){
var contents = '<p>this is some text.<span class="Am"></span>This is som text<span class="Am"></span>This is some text<span class="Am"></span></p>';
var spans = 'Number of spans in the string'; // this is required to me
for(i=1;i<=spans;i++){
// do some stuff
}
}
有谁能告诉我如何用javascript完成它?
提前致谢。
答案 0 :(得分:3)
一种方式:
var temp = document.createElement("DIV");
temp.innerHTML = contents;
var count = temp.getElementsByTagName("SPAN").length;
答案 1 :(得分:2)
尝试这个,它相当硬的代码,但有效:
contents.split("</span>").length - 1
你也可以试试这个:
contents.match(/<span/ig).length
答案 2 :(得分:1)
这是一种可重复使用的混合方式
/* function stringmatchCount(str,instr) {
var count = instr.match(/str/g);
return count.length;
} */
*更新为ROKO更好地展示
function stringmatchCount(str,dlm) {
var d = new RegExp(dlm, "g");
return str.match(d).length;
}
用法,就像你的例子一样。
function doStuff(){
var contents = '<p><span class="Am"></span>doo, daaa<span></span>';
var spans = stringmatchCount(contents,'<span');
for (var i = 0, len=spans; i < len; ++i) {
...
}
}
答案 3 :(得分:0)
试试这段代码: -
contents.match(/\<span\>//g).length