Javascript 除去文本和特定属性值之外的HTML条带

Javascript 除去文本和特定属性值之外的HTML条带,javascript,html,regex,Javascript,Html,Regex,假设我有以下代码: <div class="set"> <span data-prefix="[1]">Duck</span> <span data-prefix="[2]">Dog</span> <span data-prefix="[3]">Cat</span> </div> 我不知道该怎么做,我该怎么做?不要使用。在这种情况下,您可以简单地使用JavaScript 使用

假设我有以下代码:

<div class="set">
    <span data-prefix="[1]">Duck</span>
    <span data-prefix="[2]">Dog</span>
    <span data-prefix="[3]">Cat</span>
</div>
我不知道该怎么做,我该怎么做?

不要使用。在这种情况下,您可以简单地使用JavaScript

使用
data prefix
属性迭代元素,并使用
dataset.prefix
访问属性值。然后将其与
textContent
属性值连接起来:

var elements = document.querySelectorAll('.set > [data-prefix]'),
    result = '';

for (var i = 0; i < elements.length; i++) {
  result += elements[i].dataset.prefix + elements[i].textContent;
}

console.log(result); // [1]Duck[2]Dog[3]Cat
但是,我的跨距没有数据前缀属性。我怎样才能将这些包含在结果中

此代码选择父
div.set
中的所有
span
,获取其属性
数据前缀
,如果它在那里,它将输出它,否则它将输出
[-]

var divspan=document.querySelectorAll('.set>span');
对于(var i=0;i

鸭子
狗
猫
猎鹰
鹦鹉
//使用data-X获取所有dom节点
var nodes=document.queryselectoral(“[数据前缀]”),
值=[];
对于(var i=0;i

现在,您有了一个包含所有所需值的n数组

为什么需要regExp?你不能用JS做吗?当然,我怎么能用JS做呢?你…+1用正则表达式链接解析HTML。这就是当任何一个看到有人试图这么做的SO浏览器出现在脑海中的时候看起来不错,但是我的跨距没有数据前缀属性。我怎样才能把这些也包括在结果中?(几乎只是一个带字母的空格)
var elements = document.querySelectorAll('.set > [data-prefix]'),
    result = '';

for (var i = 0; i < elements.length; i++) {
  result += elements[i].dataset.prefix + elements[i].textContent;
}

console.log(result); // [1]Duck[2]Dog[3]Cat
/(?:<span data-prefix="([^"]+)">([^<]+)<\/span>)+/g
1) ([1])(Duck)
2) ([2])(Dog)
3) ([3])(Cat)
// Get all the dom nodes with the data-X

var nodes = document.querySelectorAll('[data-prefix]'),
    values = [];

for (var i = 0; i < nodes.length; i++) {
    values.push(nodes[i].dataset.prefix + nodes.textContent);
}