0

我似乎无法理解这一点,我在each循环中有这段代码:

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

现在上面的代码不起作用,但是如果我尝试设置文本或 html 它确实指定了权利并更改了文本,但是设置值似乎不起作用。

不用说,具体元素是文本输入。

我在这个问题中看到作者似乎能够解决元素的 attr 问题,这意味着:

$('#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

th您正在尝试将输入标签作为 tr 的子标签来访问,因为除了标签之外或td内部标签之外,不可能有任何tr标签。您应该更深入地DOM发现该元素的级别更低。

这样的事情应该做:

$('#prices_table tr:last input')

访问该表最后一行内的输入。

于 2012-12-09T14:17:17.120 回答
1

Arash Milanis 的回答让我意识到我正在尝试设置val()td而不是它的孩子。这段代码最终奏效了,因为td只有 1 个孩子:

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