过滤对象HTMLSpanElement并添加className到该对象

filtering object HTMLSpanElement and add className to that object

本文关键字:对象 className HTMLSpanElement 过滤 添加      更新时间:2023-09-26

此代码提示1。object HTMLLIElementHTMLSpanElement对象。

我只想过滤所有的对象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);
}

这是我自己问题的解决方案。使用跨度过滤动态获取所有节点

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
        }
    }

希望这将帮助某人。就像我把静态代码变成动态代码一样。