0

jqueryで行の周りにラッパーを追加したいと思います。私はいくつかの試みをしましたが、できません。HTML テンプレートを使用して入力することしかできませんが、orig.html() を実行すると、そこにあった入力選択値が失われます。

元のhtml:

    <table><tbody>
  <tr id="myitem1"><td>I need a coat1</td></tr>
  <tr id="myitem2"><td>I need a coat2</td></tr></tbody></table>

=== jQuery を使用して行をラップし、ボタン セルを追加して、次の結果を取得したい:

 <table><tbody>
  <tr id="myitem1">
   <td>
    <table><tbody>
     <tr><td>I need a coat1</td></tr>
    </tbody></table>
   </td>
   <td><input type="button" value="click1"></td>     
  </tr>
  <tr id="myitem2">
   <td>
    <table><tbody>
     <tr><td>I need a coat2</td></tr>
    </tbody></table>
   </td>
   <td><input type="button" value="click1"></td>
  <tr>
</tbody></table>
4

3 に答える 3

2

各行のすべての列を取得し、それらを単一の列内のテーブルにラップしてから、列を行に追加すると仮定しています。

$('tr').each( function() {
   $(this).children().wrapAll('<td><table><tr></tr></table></td>');
   $(this).append('<td><input type="button" value="click1"></td>');
});
于 2009-11-03T01:43:20.133 に答える
0
<script>
$(function(){
    var flowbox_table = $('img.flowbox').wrap('<table />');
    var flowbox_tr = $(flowbox_table).wrap('<tr />');
    var flowbox_td = $(flowbox_tr).wrap('<td />');
});
</script>
于 2012-12-06T23:14:57.427 に答える
-1

を使っtr[id^='myitem']て選択します。

セレクター<tag> [ <attr> ^=' <prefix> '] は、 .で始まる withtag属性のすべての要素を選択します。attrprefix

コード全体は次のとおりです。

<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script>

function template(pStr, pAttrs) {
    return pStr.replace(/{\$([^}]*)\$}/g, function (a, pName) {
        return pAttrs[pName];
    });
}

const TDReplaceTemplate =
"   <td>"                                              + "\n" +
"    <table><tbody>"                                   + "\n" +
"     <tr>{$OrgTD$}</tr>"                              + "\n" +
"    </tbody></table>"                                 + "\n" +
"   </td>"                                             + "\n" +
"   <td><input type=\"button\" value=\"click1\"></td>" + "\n";

$(document).ready(function() {
    $("tr[id^='myitem']").each(function(aTR) {
        const aOrgTD = $(this).html();
        const aNewTD = template(TDReplaceTemplate, { OrgTD: aOrgTD } );
        $(this).html(aNewTD);
    });
});
</script>
</head>
<body>
<table><tbody>
  <tr id="myitem1"><td>I need a coat1</td></tr>
  <tr id="myitem2"><td>I need a coat2</td></tr>
</tbody></table>
</body>
</html>

お役に立てれば。

于 2009-11-03T01:46:10.953 に答える