2009-06-23 8 views
0

大きな問題があります。私は、入力タグ、生のテキスト、リンクタグなどを含むHTMLテーブルからテキストを抽出し、新しいウィンドウでテキストのみのHTMLテーブルを表示したいと思います。javascript/jquery extract入力タグを含むHTMLテーブルのHTMLテキスト

<TABLE id="test"> 
<TBODY> 
<TR> 
<TD>TEXT 1</TD> 
<TD><a href="/questions">TEXT 2</a></TD> 
<TD><input type="text" value="TEXT 3" ></TD> 
</TR> 
</TBODY> 
</TABLE> 

魔法のもの(スクリプト)は(パース)ここでは(この)

OUTPUT

<TABLE id="test"> 
<TBODY> 
<TR> 
<TD>TEXT 1</TD> 
<TD>TEXT 2</TD> 
<TD>TEXT 3</TD> 
</TR> 
</TBODY> 
</TABLE> 

が起こる

サンプル入力Iは、ほとんどどこでも検索し、私はそれを動作させることはできません。 コピー貼り付けにはこの機能が必要です。

ヘルプ。

答えて

1

ありがとう参照、jQueryのメソッドの詳細については、あなたのサンプルに基づいて

を@artlung私はHTMLに完全なソリューション (コピーペーストを準備ファイル)

これを確認するには、多分それは賭けをすることができますテル?

完全問題:入力、アンカー、テキストのみ

2.Create新しいウィンドウと転送準備表

溶液で新しいCLEAN HTMLテーブルにテキストを

1.Transform HTMLテーブル:

<html> 
<head> 
<title>TEST HTML table with inputs , anchor to text </title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var tmp = ''; 

$('table tbody tr').each(function() { //iterate tr 
tmp += '<tr>'; 
$(this).find('td').each(function() { //iterate td 
    tmp += '<td>'; 
    tmp += $(this).text(); 
    $(this).find('input').each(function() { 
      tmp += $(this).val() ; 
     tmp += '</td>'; 
    }); 
}); 
tmp += '</tr>'; 
}); 


$("#demo_button").click(function(e) { 
myWindow=window.open('','MyNewWindow','width=500,height=300,left=200,top=100'); 
myWindow.document.write('<html><head><title>CTRL+C to copy</title></head><body><table><tbody>' + tmp + '</tbody></table></body></html>'); 
myWindow.document.close(); 
myWindow.focus(); 
}); 

}); 
</script> 
</head> 
<body> 
<div> 
<input type="button" id="demo_button" value="Click Me to open window with clean HTML TABLE prepared for copy"/> 

<br/>This is HTML TABLE: 
<TABLE id="test"> 
<TBODY> 
<TR> <TD><b>TEXT 1</b></TD> <TD><a href="#">TEXT 2</a></TD> <TD><input type="text" value="TEXT 3" ></TD> </TR> 
<TR> <TD><span>TEXT 1.1</span></TD> <TD><a href="#">TEXT 2.1</a></TD> <TD><input type="text" value="TEXT 3.1" ></TD> </TR> 
</TBODY> 
</TABLE> 

</div> 
</body> 
</html> 
6

何かからテキストだけを抽出するには、.text()メソッドを使用します。入力値を取得するには、.val()メソッドを使用します。

したがって、各<TD>セルにループする必要があります。入力がある場合は値を取得します。 .html()メソッドを使用して、それらをまとめてセルに戻します。ここで

はコードです:

$(document).ready(function(){ 
    var tmp = ''; 
    $('table tbody tr td').each(function() { 
     tmp = $(this).text(); 
     $(this).find('input').each(function() { 
       tmp += $(this).val(); 
     }); 
     $(this).html(tmp); 
    }); 
}); 

http://api.jquery.com/

+1

私は十分速く入力しませんでした。いい答えだ。 –

+0

+1それは良い答えであり、実際には非常に迅速です。 – karim79

+0

楽しいものでしたが、私はセミコロンを忘れて編集しなければなりませんでした。 – artlung

関連する問題