我有一个字符串,其中包含文本和许多html标签,其中包含各自的属性及其值,例如: -
我试图取出所有的标签名称并推入内部数组注释: - 我有两个自定义函数,名为trim()和null(),它删除字符串的所有空格并检查提供的参数是否为空.
var a = `
<div class="box">
<span id="box-span">
<p class="texts">very long texts goes here.</p>
<p class="texts">very long texts goes here</p>
<p class="texts">very long texts goes here</p>
</span>
</div>`;
var tags = function(string) {
var array = ['hello'];
var string = a.trim('');
var len = string.length;
for (var i = 0; i < len; i++) {
index1 = string.indexOf('>');
index2 = string.indexOf('<');
index3 = string.indexOf('/');
if (null(index1) && index1 !== -1 && null(index2) && index2 !== -1) {
// if somthing is found
x = string.substr(index1, index2);
g = x.indexOf('/') // for end tag
if (null(g) || g !== -1) {
x = string.substr(index1, index2 - 1);
array.push(x);
} else {
array.push(x);
}
z = string.substr(index2); // new string with reducing 1 tag
if (z.length < len && z.length > 0) {
tags(z)
} else {
return array;
break;
}
}
}
}
console.log(tags(a));Run Code Online (Sandbox Code Playgroud)
这是我的想法,但它不起作用.
更新 ; 仅获取唯一标签(无重复).
类似的东西会让你走上tags从HTML中删除所有可用的...
var a = `<div class="box">
<span id="box-span">
<p class="texts">very long texts goes here.</p>
<p class="texts">very long texts goes here</p>
<p class="texts">very long texts goes here</p>
</span>
</div>`;
var temp = document.createElement("div");
temp.innerHTML = a;
var all = temp.getElementsByTagName("*");
var tags = [];
for (var i = 0, max = all.length; i < max; i++) {
var tagname = all[i].tagName;
if (tags.indexOf(tagname) == -1) {
tags.push(tagname);
}
}
console.log(tags);Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/9phzt1y2/2/
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |