2011-11-12 10 views
0

私はいくつかのテキストをserval times削除することはできませんので、javascriptで文字列を分割することはできません。文字列のDE値は次のとおりです。その中にランダムな内容のJavascriptを分割

<table cellpadding="2" cellspacing="0" border="0" style="margin-top: 10px;"> 
     <tr> 
      <td><img src="img/pb_read.gif" alt="Oud" /></td> 
      <td><a style="overflow: hidden; display: block; width: 195px; " title="Re: One2xs host: Starter" href="read_pb?id=353544">Re: One2xs host: Starter</a></td> 
      <td><div style="width: 90px; overflow: hidden;"><a href="http://www.one2xs.com/profiel/bekijk?gebruiker=julianh">Julianh</a></div></td> 
      <td>12-11-2011 07:46:22</td> 
      <td><input style="margin: 0;" type="checkbox" name="berichten_check[]" value="353544" /></td> 
     </tr> 
     <tr> 
      <td><img src="img/pb_read.gif" alt="Oud" /></td> 
      <td><a style="overflow: hidden; display: block; width: 195px; " title="Re: Starterhost" href="read_pb?id=353376">Re: Starterhost</a></td> 
      <td><div style="width: 90px; overflow: hidden;"><a href="http://www.one2xs.com/profiel/bekijk?gebruiker=jidde">Jidde</a></div></td> 
      <td>11-11-2011 16:19:22</td> 
      <td><input style="margin: 0;" type="checkbox" name="berichten_check[]" value="353376" /></td> 
     </tr> 
     <tr> 
      <td><img src="img/pb_read.gif" alt="Oud" /></td> 
      <td><a style="overflow: hidden; display: block; width: 195px; " title="Transactie geweigerd" href="read_pb?id=353248">Transactie geweigerd</a></td> 
      <td><div style="width: 90px; overflow: hidden;">one2xs</div></td> 
      <td>10-11-2011 19:53:24</td> 
      <td><input style="margin: 0;" type="checkbox" name="berichten_check[]" value="353248" /></td> 
     </tr> 
</table> 

私は毎回<td><input style="margin: 0;" type="checkbox" name="berichten_check[]" value="******" /></td>削除したいのですが、valueは6つの数字とランダムなコードです。どのように分割してその状態のすべての行を削除できますか?

私の悪い英語は大変申し訳ありませんが、私の質問を理解していただければ幸いです。

+1

その文字列をDOMに解析します。 DOMで上記の文字列があなたがトラバースできるオブジェクトツリーになるので... **編集:**あなたは各行から最後のTDを削除したいと思う - これはDOMでの簡単な作業です(特にjQueryのようなライブラリを使用する場合は特にそうです)。 –

+0

「否定的なことは何ですか? –

+0

Btw、HTMLソースコード操作は、ブラウザ内でJavaScriptを使ってやりたいことではありません。あなたはサーバー側でこのような操作をしたい* HTMLソースコードをブラウザに送る前に... JavaScriptはDOMのようなオブジェクト構造を操作するのに適しています - 文字列操作はJavaScriptの強みの1つではありません... –

答えて

1

それが文字列なら、正規表現と併せて、replace機能を使用します。

string = string.replace(/<td><input style="margin: 0;" type="checkbox" name="berichten_check\[\]" value="\d+" \/><\/td>/g, ""); 

要素がすでにHTML、使用に添付されている場合:DOMで

var elements = document.getElementsByName("berichten_check[]"); 
for(var i=elements.length-1; i>=0; i--){ 
    var cell = elements[i].parentNode; 
    cell.parentNode.removeChild(cell); 
} 
0

は、 :

var container_ = document.createElement('div'); 
container.innerHTML = html; 

var inputs = container.getElementsByTagName('input'); 

for(var i = inputs.length; i--;) { 
    var cell = inputs[i].parentNode; 
    cell.parentNode.remove(cell); 
} 

html = container.innerHTML; 
+0

'for'文の代わりに' []] .forEach.call(inputs、function(input){...});を考慮してください。 (1)イテレータ変数を必要としない、(2)反復本体内でローカル変数を使用できるように新しいスコープを作成する、(3)現在の値が最初の引数によって参照される(input 'この場合)、' inputs [i] 'を使ってアクセスする必要はなく、複数回必要な場合は変数に入れる必要はありません。 –

+0

@ imeVidas:はい、それはIE8以下では動作しません; –

+0

確かに - [ES5-shim](https://github.com/kriskowal/es5-shim)で。いいえ、頭脳がない... ':)' –

関連する問題