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">セレクターを「#mytabletr」に変更して機能させる必要がありました。

また、tdToPadのタイトルはTitleである必要があります。

デモを見る

于 2012-07-08T15:26:44.947 に答える