Javascript 如何将所有命名的HTML标记拉入一个数组?

Javascript 如何将所有命名的HTML标记拉入一个数组?,javascript,jquery,Javascript,Jquery,我有一个页面,其中包含需要以 <tag>dataIwant</tag> <tag>dataIwant</tag> <tag>dataIwant</tag> <othertag>moarData</othertag> <othertag>moarData</othertag> 如果它们是命名元素或有类,那么使用jQuery很容易提取这些元素,但它们没有。我所拥有的只是自定义标记

我有一个页面,其中包含需要以

<tag>dataIwant</tag>
<tag>dataIwant</tag>
<tag>dataIwant</tag>
<othertag>moarData</othertag>
<othertag>moarData</othertag>
如果它们是命名元素或有类,那么使用jQuery很容易提取这些元素,但它们没有。我所拥有的只是自定义标记名,一行中最多有20个或更多相同名称的标记名。如果我能将它们转换为数组,它将简化我的工作。我当然可以编写自己的函数来解析信息,但是没有更简单的方法吗

只要我能够访问数据并保留读取顺序(标记表示我需要填写的表单上的数据位置,以便处理顺序问题),就欢迎其他建议

您可以使用.each()方法将来自每个自定义标记的所有文本收集到一个数组中

此外,您还可以使用document.querySelectorAll获取一个列表,然后可以对该列表进行迭代。这将需要更多的工作,因为它还将在数组中包含标记

请注意,我添加了一个样式规则,以使所有内容都显示在单独的行中

var tagArr=[];
$('tag')。每个(函数(){
var text=$(this.text();
tagArr.push(文本);
})
console.log(tagArr);//给出[“dataIwant”、“dataIwant”、“dataIwant”]
var otherTagArr=[];
$('otherTag')。每个(函数(){
var text=$(this.text();
otherTagArr.push(文本);
})
console.log(otherTagArr)//给出“moarData”、“moarData”]
tag,otherTag{display:block}

达蒂万特
达蒂万特
达蒂万特
摩阿尔达

moarData
因此,如果您有一个共同的父对象,并且您不知道您要查找的标记名,那么您可以查看子对象,并使用标记名将它们推入一个对象或数组中

var wrapper=document.getElementById(“wrapper”);
var set=Array.from(wrapper.children).reduce(函数(o,el){
o[el.tagName]=o[el.tagName]| |[];
o[el.tagName].push(el.textContent)
返回o
}, {});
console.log(设置)

达蒂万特
达蒂万特
达蒂万特
摩阿尔达
摩阿尔达

这些是自定义HTML元素吗?你知道以前的元素是什么吗?他们住在哪里?现实世界的例子会让这个问题很容易回答。这些数据可能是有效的XML吗?还是仅仅是明文?根据数据的不同,答案可能非常简单,也可能非常复杂。例如,文件是否有标题?例如,是否有一个数据行声明使用的两个标记是
tag
othertag
?我相信这是有效的XML,但当我试图将其解析为这样时,它给了我一个错误的数据。我想对字符串运行一个命令会更容易,将所有X标记作为数组,然后是Y标记,然后是Z。我已经知道标记的名称。我在字符串中有数据,所以技术上我做了$(strpage)。查找('tagname')。每一个,但效果很好。它简单且可重复,因此我将此标记为答案。
array1(dataIwant,dataIwant,dataIwant);
array2(moarData,moarData);