使用jQuery获取每行的输入值

时间:2012-07-08 15:09:38

标签: jquery

我仍然遇到这么多问题:

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);
    });
}

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

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

此外,tdToPad的标题必须是标题。

see the demo