0

これを理解できないようです。eachループ内にこのコードがあります:

$('#prices_table tbody tr:last').children().eq(2).val("Y U NO WORK?!");

上記のコードは機能しませんが、テキストまたは html を設定しようとすると、権利が指定されてテキストが変更されますが、値の設定は機能しないようです。

特定の要素がテキスト入力であることは言うまでもありません。

私はこの質問で、作者が要素の属性に対処することでそれを機能させることができるように見えることを見ました:

$('#prices_table tbody tr:last').children().eq(2).attr("value","Y U NO WORK?!");

しかし、それもうまくいきませんでした。ページにエラーはありませんが、何が問題なのですか?

アドレス指定された要素は、次を使用して上記のクローン 1 行によって作成されていることに言及する必要があります。

$('#prices_table tbody tr:first').clone(true).appendTo('#prices_table').show();

それが重要な場合、これは要素のhtmlです:

<input class="itext product_prices_inputs" type="text" name="prices[]" value="0"/>

そして、私のコードは 内で実行されます(document).ready

私のコードの多くは PHP で生成されているため、これは特定の出力 HTML ですtr

<tr style="">
<td>
<select class="iselect pricelist_products_select" name="pricelist_product[]" >
     //very big select
    </select>
</td>
<td class="product_price">85</td>

<td>
<input class="itext product_prices_inputs" type="text" name="prices[]" value="0">
</td>
<td>
<a href="#" class="delete_price">delete</a>
</td>
</tr>
4

2 に答える 2

1

You are trying to access an input tag as the children of a tr as it's not possible to have any tag other than th or td inside tr tag. you should go deeper in the DOM and find that element a level lower.

something like this should do:

$('#prices_table tr:last input')

to access the inputs inside last row of that table.

于 2012-12-09T14:17:17.120 に答える
1

Arash Milanis の回答により、私は子供ではなく、設定しようとしていることに気づきval()ましたtdtdchild が 1 つしかなかったため、このコードは最終的に機能しました。

$('#prices_table tbody tr:last').children().eq(2).children().eq(0).val("Y U NO WORK?!");
于 2012-12-09T14:19:47.227 に答える