2016-04-06 2 views
0

文字列のブロックをHTMLタグで分割しようとしました。 私の入力がJavascript:HTMLタグを含む文字列からブロックを分割しますか?

var data = '<html> 
    <body> 

     <div class="test"> 
     <input type="text"/> 
     </div> 

     <div class="test"> 
     <input type="text"/> 
     </div> 

     <div class="test2"> 
     <input type="text"/> 
     </div> 

    </body> 
</html>' 

マイ除外出力は

'<div class="test"> 
    <input type="text"/> 
    </div> 

    <div class="test"> 
    <input type="text"/> 
    </div>' 

である私は、dummy div要素を作成し、この

data.split('<div class="test">'); 
+0

何test2' 'は?あなたはそれをスキップしたいですか? –

+0

はい私はスキップtest2をしたい – Jothimani

+1

HTMLを手動で解析しないでください。ネイティブDOMメソッドを使用する – hindmost

答えて

3

を試してみました。 innerHTMLdatadiv。あなたはstringとしてそれをしたい場合は、あなたがarrayArray#joinそれでそれを押して、getElementsByClassNameによって返さcollectionを繰り返すことができ:あなたは編集getElementsByClassName

var data = '<html>\ 
 
    <body>\ 
 
     <div class="test">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
     <div class="test">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
     <div class="test2">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
    </body>\ 
 
</html>' 
 
var div = document.createElement('div'); 
 
div.innerHTML = data; 
 
var classes = div.getElementsByClassName('test'); 
 
console.log(classes);
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>

を使用してdivからクラス要素を選択することができます。

var data = '<html>\ 
 
    <body>\ 
 
     <div class="test">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
     <div class="test">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
     <div class="test2">\ 
 
     <input type="text"/>\ 
 
     </div>\ 
 
    </body>\ 
 
</html>'; 
 
var div = document.createElement('div'); 
 
div.innerHTML = data; 
 
var classes = div.getElementsByClassName('test'); 
 
var arr = []; 
 
[].forEach.call(classes, function(elem) { 
 
    arr.push(elem.outerHTML); 
 
}); 
 
console.log(arr.join('')); 
 
console.log('==============OR==============='); 
 
var div2 = document.createElement('div'); 
 
[].forEach.call(classes, function(elem) { 
 
    div2.appendChild(elem.cloneNode(true)); 
 
}); 
 
console.log(div2.innerHTML);
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>

+0

親愛なるレーヨンありがとう、私はそれを文字列として欲しい – Jothimani

+0

編集を確認します.. – Rayon

+0

私は最初の要素 'テスト'を持っていますが、私はクラス 'テスト'ですべての要素が必要です – Jothimani

関連する問題