此代码警告1.对象HTMLLIElement 2.对象HTMLSpanElement。
我只想过滤所有对象HTMLSpanElement并附加className + =' parent1'
var htmlLabelElementObj = HtmlDocObj.getElementById(CurrentNodeId);
var current = htmlLabelElementObj.parentElement.parentElement.parentNode.parentNode.parentNode;
while (current.parentNode){
current = current.parentNode.parentNode.firstChild;
alert(current);
}
以下代码是静态的。我是以动态的方式这样做的。
htmlLabelElementObj.parentElement.parentElement.parentNode.parentNode.parentNode.firstChild.className+=' parent1';
htmlLabelElementObj.parentElement.parentElement.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.className+=' parent1';
htmlLabelElementObj.parentElement.parentElement.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.className+=' parent1';
以上代码通过添加到当前节点来设置className。 parentNode.parentNode.firstChild每个节点。
修改 我试过找到并过滤但不起作用。
if($('current').find('[object HTMLSpanElement]'))
{
alert(current);
}
if($('current').filter('[object HTMLSpanElement]'))
{
alert(current);
}
答案 0 :(得分:0)
这是我自己的问题的解决方案。使用跨度过滤动态获取所有节点
var testspan='';
var current = htmlLabelElementObj.parentNode.parentNode.parentNode;
while (current.parentNode){
//this current variable add every time two parentNode to reach li of parent
current = current.parentNode.parentNode;
if(current != null)
{
// this code to reach span of li and change the span icon of parent class
testspan = current.firstChild;
if(testspan == '[object HTMLSpanElement]' && testspan.className != ' parent1')
testspan= testspan.className+=' parent1';
}
else
{
break; // this is for preventing an exception of childnode
}
}
希望这会对某人有所帮助。就像我让静态代码变得动态一样。