1

そのため、表のセルから数値をフェッチしてフォーカスアウトの入力で乗算できるようにしたいのですが、セレクターは名前が前面にあるすべての表のセルを取得しています。コードは次のとおりです。

jquery

$(document).ready(function(){
    $(".percent").focusout(function(){
        var val2 = $(this).val();
        if (val2==="") {
            val2=0;
        }
        var crew2 = $(this).attr("name"),
            front = $(".front, td[name='front"+crew2+"']").text();
        console.log(crew2);
        console.log(front);
    });
});

html:

<tr>
    <td class='front' name='frontI210'>$176.00</td>
    <td><input type='text' class='percent' name='I210' style='' size='4' /></td>
    <td>=</td>
    <td class='total' id='I210'></td>
</tr>
<tr>
    <td class='front' name='frontI250'>$225.00</td>
    <td><input type='text' class='percent' name='I250' style='' size='4' /></td>
    <td>=</td>
    <td class='total' id='I250'></td>
</tr>

console.log(front) は、fronti210 と fronti250 のすべてのテキストを次のように返します。

$176.00$225.00

完成した入力フィールド名に一致するテーブル セルからの情報のみを受け取りたいのですが、どうすればよいですか?

4

2 に答える 2

8

$(".front, td[name='front"+crew2+"']")classfrontを持つすべてのtd要素と. を持つすべての要素のサーチャーname frontXXX。コンマは複数セレクター [docs]です。

tdその名前の要素のみを検索します。

var front = $("td[name='front"+crew2+"']").text();

または DOM トラバーサルを使用します。

var front = $(this).closest('tr').children('.front').text();
于 2012-08-30T19:17:00.830 に答える
4
$(".front, td[name='front"+crew2+"']").text();
//this___^ is the culprit.

コンマは基本的に、クラスfrontを持つすべての要素と、指定された名前を持つすべての td 要素が必要だと言っています。

あなたが望むのはおそらく次のとおりです。

$("td[name='front"+crew2+"'].front").text();

私はそれをテストしていないと思っていたので、構文が少しずれている可能性があります。

于 2012-08-30T19:18:01.657 に答える