如何针对表运行一些jQuery来根据列值更改填充?

时间:2012-07-08 03:36:29

标签: jquery

我有以下代码,我需要这样做,所以我表格第二列的填充取决于第一列中的数字。

<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>

我需要的是第二列的左边填充为0,10px或20px,具体取决于第一列id是以0.0,.0还是非零结束。

有没有办法用jQuery做到这一点?

2 个答案:

答案 0 :(得分: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);
});

Fiddle

编辑:您也可以使用公共类而不是这些ID选择器,这将是一种更标准的方法。此外,您可以将表格的ID添加到第一个选择器:$('#tableID tr'),以防页面中有多个表格。

答案 1 :(得分:0)

$('#tableThatICareAbout').find('tr > td').eq(1)
.css('padding-left',

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

);

我希望这可行,但无论核心问题是什么,处理这个问题都是一种可怕而可怕的方式。