0

次のコードがあり、テーブルの2番目の列のパディングが最初の列の番号に依存するようにする必要があります。

<tr>
   <td id="refKey_1" style="text-align:center;" class=" sorting_1">1.0.0</td>
   <td id="Title_1">
      <input type="text" value="x" size="100" name="item.Title" id="item_Title_1">
   </td>
</tr>
<tr>
   <td id="refKey_2" style="text-align:center;" class=" sorting_1">1.2.0</td>
  <td id="Title_2">
      <input type="text" value="xx" size="100" name="item.Title" id="item_Title_2">
   </td>
</tr>
<tr>
   <td id="refKey_3" style="text-align:center;" class=" sorting_1">1.3.4</td>
   <td id="Title_3">
      <input type="text" value="xxx" size="100" name="item.Title" id="item_Title_3">
   </td>
</tr>

必要なのは、最初の列IDが0.0、.0、またはゼロ以外で終わるかどうかに応じて、2番目の列の左側のパディングを0、10px、または20pxにすることです。

jQueryでこれを行う方法はありますか?

4

2 に答える 2

2

セルのテキストを意味しているとid思いますよね?これを行うための正規表現のマッチング。

$('tr').each(function() {
    var tds = $(this).find('td'),
        text = tds.filter('[id^="refKey_"]').text(),
        tdToPad = tds.filter('[id^="Title_"]'),
        pad;
    if (/0\.0$/.test(text))
        pad=0;
    else if (/\.0$/.test(text))
        pad=10;
    else
        pad=20;
    tdToPad.css('paddingLeft', pad);
});

フィドル

編集:これらのIDセレクターの代わりに共通のクラスを使用することもできます。これは、より標準的なアプローチです。$('#tableID tr')また、ページに複数のテーブルがある場合は、テーブルのIDを最初のセレクターに追加できます。

于 2012-07-08T03:46:51.473 に答える
0
$('#tableThatICareAbout').find('tr > td').eq(1)
.css('padding-left',

$('#tableThatICareAbout').find('tr > td').eq(0)[0].id.split('_')[1]

);

私はこれがうまくいくことを期待しますが、それはコアの問題が何であれ、この問題に対処するための恐ろしい、ひどい方法です。

于 2012-07-08T03:47:04.020 に答える