2017-01-28 1 views
-1

selectedContentWrap:HTMLノード。 htmlVarTag:文字列です。HTML要素がノード配列に存在するかどうか比較する方法は?

HTML要素がノードに存在するかどうかを確認するにはどうすればよいですか?

htmlVarTagは文字列であり、それを変換する方法を理解していないので、そのようなタグがあれば再度チェックして、それがあれば削除できますか? node.innerHTMLとその

+0

を使用して達成し、実際にタグ

を削除するに言及Charlieftl、私は私のオブジェクトが何であったかと以下の回答で答えました –

+0

現存のためのテストと対戦の争いのミッシュマッシュ...全体的な質問は書かれていて絶対的ではありません... [ask] – charlietfl

答えて

1

さてあなたはselectedContentWrapの内容を貼り付けることができれば、私はこのコードをテストすることができるだろうが、私は、これは

// Code goes here 

var checkIfHTMLinside = function(selectedContentWrap,htmlVarTag){ 
    for (item of selectedContentWrap) { 
    if (item.nodeName.toLowerCase() == htmlVarTag.toLowerCase()){ 
     return true; 
    } 
    } 
    return false; 
} 
+0

こんにちはOlogho Cyril Paul、 私はコードをテストしましたが、スペルミスがあります。 innerHtml.indexOfを意味していませんか?あなたは "x"を忘れていますか?私もエラーが発生する未定義の 'indexOf'プロパティを読み取ることができない –

+0

うん、あなたはそれを修正した –

0

使用してみてくださいです私はそれを、...

私はすでにノードのリストを持って、私は私が比較する必要があるので、ループのための単純な比較する必要があります。 「しかしcouldn - 私はちょうどそれがクロスブラウザを動作するよう.nodeNameを使用する必要が名を比較すること

(私が間違っているなら、私を修正)

一部devがその「タグ名、代わりに匿名のクロージャの辞書」と言います何かを見つける。誰かがこのライブラリを持っていれば質問に投稿できますか?

ここは私のコードです。

var node = selectedContentWrap; 
     console.log('node that is selectedwrapper', selectedContentWrap) 
     for (var i = 0; i < selectedContentWrap.length; i++) { 
      console.log('tag name is ',selectedContentWrap[i].nodeName); 
      var temptagname = selectedContentWrap[i].nodeName; // for debugging 
      if(selectedContentWrap[i].nodeName == 'B'){ 
       console.log('contains element B'); 
      } 

     } 
0

に対してチェックそれは私であるかのテスト試験後のstackoverflowと20分に質問を投稿:ここ

はselectedContentWrap に保存されている私のノードの出力enter image description here

var checkingElement = $scope.checkIfHTMLinside(selectedContentWrap,htmlVarTag); 
$scope.checkIfHTMLinside = function(selectedContentWrap,htmlVarTag){ 

    var node = htmlVarTag.parentNode; 
    while (node != null) { 
     if (node == selectedContentWrap) { 
      return true; 
     } 
     node = node.parentNode; 
    } 
    return false; 


} 
+0

配列内のノードに、探しているタグが実際に入っている子ノードがある場合はどうなりますか? –

+0

私は、コンテンツ内でHTMLタグを探し、selectedContentWrapという配列にそれらをすべて配置する他の関数を持っています。したがって、子供、子供がいる場合、selectedContentWrap配列に配置されます。 –

1

最も単純なjQueryの互換性のあるメソッドのサブセットである使用angular.elementある仕事だと思いますそれでも

$scope.checkIfHTMLinside = function(selectedContentWrap,htmlVarTag){ 
    // use filter() on array and return filtered array length as boolean 
    return selectedContentWrap.filter(function(str){ 
     // return length of tag collection found as boolean 
     return angular.element('<div>').append(str).find(htmlVarTag).length 
    }).length;  
}); 

ない100%明確な目的は、特定のタグまたは任意のタグを探すことである場合(つまり、テキストのみ区別)

かのように何気なくあなたは単にそれをアンラップか、それはまた、コンテンツだ削除したい場合は、それははっきりしていないタグを削除したい場合は...両方が簡単にangular.element

関連する問題