Javascript 如何通过标记名获取子节点
我正在尝试访问子节点。到现在为止,一直都还不错。我的代码是Javascript 如何通过标记名获取子节点,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试访问子节点。到现在为止,一直都还不错。我的代码是 columns=document.getElementById('columns')。子项[0]。子项 其中i和j是循环值 collapseState=columns[i]。children[j]。children[2]。style.display 但我正在尝试通过标记名获取元素。让我们写: collapseState=columns[i].children[j].children.getElementsByTagName('blahb
columns=document.getElementById('columns')。子项[0]。子项代码>
其中i和j是循环值
collapseState=columns[i]。children[j]。children[2]。style.display代码>
但我正在尝试通过标记名获取元素。让我们写:
collapseState=columns[i].children[j].children.getElementsByTagName('blahblah')代码>
但它给出了错误。如何实现这一点?您的问题源于试图使用计算机上不存在的函数。要使用getElementsByTagName
或getElementsByClassName
函数,需要获取单个ParentNode
collapseState=columns[i].children[j].getElementsByTagName('blahblah')代码>
或
collapseState=columns[i]。children[j]。children[someIndex]。getElementsByTagName('blahblah')代码>这可能对您有所帮助
function getbytagname(parents_id, children_tag_name){
var c = document.getElementById(parents_id).children;
var x = [] ;
for(var i =0; i<c.length;i++)
{
if(c[i].tagName===children_tag_name){ // children_tag_name should be in capital, eg. "SPAN"
x.push(c[i]);
}
};
return x;
}
函数getbytagname(父项\u id、子项\u标记\u名称){
var c=document.getElementById(parents\u id).children;
var x=[];
for(var i=0;iVM217:1未捕获类型错误:列[i]。children[j]。children.getElementsByClassName不是函数(…)。children
是HtmlCollection。它没有该函数。单个节点将具有该函数。例如,。children[0]。getElementsByClassName(…)
请参阅:和querySelectorAll(“#columns blahblah”)
什么是HTML,我打赌有更好的方法。columns[I].children[j].children[0].getElementsByTagName(“h3”).innerHtmlYou不能在HtmlCollection上调用innerHtml
(这是getElementsByTagName
返回的)。getElementsByTagName('h3')[0]。innerHtml