★質問を更新します★
テキストエリアにHTMLを入力すると、
.data_inner tableの中にある、「品番」中身を抽出する画面を作ろうとしています。
(サンプルコードでいうと、E123・E456を抽出したい)
「取得したテキストエリア内のHTMLにフィルターをかけて品番を抽出する」
が上手くできずにいます。
恐れ入りますが、
解決策がありましたら、ご教示いただけますと幸いです。
HTML
1<!-- このテキストエリアにHTMLが入る --> 2<textarea name="in"> 3 <div class="data_inner"> 4 <div class="data_info data_info_1"> 5 <table> 6 <tr><th>原価</th><td>1000</td></tr> 7 <tr><th>単価</th><td>500</td></tr> 8 <tr><th>売価</th><td>2000</td></tr> 9 <tr><th>品番</th><td>E123</td></tr> 10 <tr><th>品名</th><td>ほげほげ</td></tr> 11 </table> 12 </div> 13 <div class="data_info data_info_2"> 14 <table> 15 <tr><th>原価</th><td>1000</td></tr> 16 <tr><th>単価</th><td>500</td></tr> 17 <tr><th>売価</th><td>2000</td></tr> 18 <tr><th>品番</th><td>E456</td></tr> 19 <tr><th>品名</th><td>ふがふが</td></tr> 20 </table> 21 </div> 22 <!-- このあとも .data_info のdivは複数存在する --> 23 </div> 24</textarea> 25<!-- /このテキストエリアにHTMLが入る --> 26 27<textarea name="out" readonly><!-- ここに抽出した品番を出力 --></textarea>
jQuery
1<script> 2 $(function(){ 3 4 // テキストエリアの中身を取得 5 var txt = document.f.in.value; // txtに入っているHTMLに、 6 7 // 品番を抽出 8 var vals = $('.data_info td').filter(function(){ // フィルターをかけて、 9 return $(this).prev('th').text()=="品番"; 10 }).map(function(){ 11 return $(this).text(); 12 }).get(); 13 14 // 出力 15 document.f.out.value = vals; // 出力したい。 16 }); 17</script>
回答2件
あなたの回答
tips
プレビュー