0

このコード アラート 1. object HTMLLIElement 2. object 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);
}
4

1 に答える 1

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

これが誰かを助けることを願っています。静的コードを動的にするために苦しんだように。

于 2014-05-29T13:11:57.597 に答える