如何获取字符串中的html元素数量?

时间:2013-01-23 04:58:29

标签: javascript jquery

如何在字符串中获取HTML元素(HTML标记)的数量?

例如我有这个字符串:

<div> some text
     <div>
           <label>some text</label>
     </div>
</div>

现在我如何在这个字符串中找到html标签的数量?上述案例的结果将是3。

我确实试过这个,认为它会起作用,但它没有:

$('*').length;

6 个答案:

答案 0 :(得分:2)

var s = "<div> some text<div><label>some text</label></div></div>";   
var length = $(s).find('*').andSelf().length;

http://jsfiddle.net/jCW7Z/

答案 1 :(得分:1)

  1. 获取文档中的所有元素(document.getElementsByTagName('*'))
  2. 对每个元素的元素的className属性执行正则表达式匹配

  3. 你可以使用jQuery:$(“html *”),它将返回html标签之间的所有元素

    1. 表示您必须使用$(“html *”)。attr('name')
    2. 代表值$(“html *”)。val()或$(“html *”)。attr('value')

答案 2 :(得分:1)

如果你正在使用jQuery(它看起来像你),最简单的方法是使用类似于以下的代码:

var count = $( yourString ).find('*').andSelf().length

但是,如果你使用的是vanilla javascript,实现看起来会更像这样:

var temp = document.createElement('div');
temp.innerHTML = yourString;

var count = temp.getElementsByTagName('*').length;

答案 3 :(得分:0)

可能的方法:http://api.jquery.com/length/

结帐Find number of element in string with jQuery

例如

  

$('。myClass',myData)。length;

(虽然这可能不会显示最外面的标签)

答案 4 :(得分:0)

你可以这样做,

将字符串放入某些隐藏的div

$('#myHiddenDiv').html(string);

然后

你可以根据它生成孩子的数量

这将告诉你身体下的html元素数量

var count = $("#myHiddenDiv> *").length;

或:

var count = $("#myHiddenDiv").children().length;

你的div会是这样的

<div id="myHiddenDiv" style="display:none"></div>

答案 5 :(得分:0)

一个小的,自我记录的例子:)

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>List Elements</title>
</head>
<body>
<div>some text
    <div>
        <label>some text</label>
    </div>
</div>
<script>
var x=document.getElementsByTagName('*');
console.log(x.length)
for (i=0;i<x.length;i++) {
    console.log(x[i]);
}
</script>
</body>

</html>