1

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

例如我有这个字符串:

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

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

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

$('*').length;
4

6 回答 6

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

http://jsfiddle.net/jCW7Z/

于 2013-01-23T05:04:38.907 回答
2

如果您使用的是 jQuery(并且看起来确实如此),最简单的方法是使用类似于以下的代码:

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

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

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

var count = temp.getElementsByTagName('*').length;
于 2013-01-23T05:16:31.303 回答
1
  1. 获取文档中的所有元素(document.getElementsByTagName('*'))
  2. 对每个元素的元素的 className 属性进行正则表达式匹配

您可以使用 jQuery: $("html *") 它将返回 html 标签之间的所有元素

  1. 对于名称,您必须使用 $("html *").attr('name')
  2. 对于值 $("html *").val() 或 $("html *").attr('value')
于 2013-01-23T05:00:44.707 回答
0

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

查看使用 jQuery 查找字符串中的元素数

例如

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

(尽管这可能不会显示最外面的标签)

于 2013-01-23T05:04:11.370 回答
0

你可以这样做,

把绳子放在一些隐藏div的地方

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

然后

你可以在它下面生成几个孩子

这将告诉您正文下的 html 元素数量

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

或者:

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

你的 div 会是这样的

<div id="myHiddenDiv" style="display:none"></div>
于 2013-01-23T05:06:04.447 回答
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>
于 2013-01-23T05:13:59.800 回答