0

我仍然有很多问题:

function padTitles() {
    $('tr').each(function () {
        var tds = $(this).find('input'),

        text = tds.filter('[id^="TempRowKey_"]').val(),
        tdToPad = tds.filter('[id^="title_"]'),
        pad;
        if (/0\.0$/.test(text))
            pad = 10;
        else if (/\.0$/.test(text))
            pad = 35;
        else
            pad = 60;
        tdToPad.css('paddingLeft', pad);
    });
}

注意:这是我之前使用的。当值不在输入中时,这有效:

var tds = $(this).find('td'),
text = tds.filter('[id^="refKey_"]').text(),

它应该获取以 TempRowKey_ 开头的 id 的输入值,然后将其用于填充。但是代码什么也没做。

这是我的 HTML:

<tr id="row_1">
  <td id="tempRowKey_1" >
    <input type="text" size="10" value="1.0.0" class="updatable" id="TempRowKey_1">
  </td>
  <td id="title_1">
     <input id="Title_1" class="updatable" type="text" value="zxxx" size="100" name="item.Title">
  </td>.
  <td ...
</tr>

有什么方法可以测试这个。我无法访问 jQuery 块内的任何内容?

更新:

Here is my original code that worked before I enclosed the value I need inside an input:

function padTitles() {
    $('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 = 10;
        else if (/\.0$/.test(text))
            pad = 35;
        else
            pad = 60;
        tdToPad.css('paddingLeft', pad);
    });
}
4

2 回答 2

2

这个 jsFiddle 正在工作并实现了您概述的功能

让我知道这是否不是您想要的?

于 2012-07-08T15:23:26.497 回答
1

我必须放一个<table id="mytable">并将选择器更改为“#mytable tr”才能工作。

另外,tdToPad 的标题必须是 Title。

看演示

于 2012-07-08T15:26:44.947 回答