设置不在子元素上工作的输入值

时间:2012-12-09 14:05:02

标签: javascript jquery html children

我似乎无法理解这一点,我在each循环中包含此代码:

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

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

有人说特定元素是文本输入。

我在this问题中看到作者似乎能够解决元素的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生成的,因此这是特定tr的输出HTML:

<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>

2 个答案:

答案 0 :(得分:1)

您正尝试将输入标记作为tr的子项访问,因为除thtd标记内的trDOM之外,不能使用任何标记。你应该深入$('#prices_table tr:last input') 并发现该元素更低一级。

这样的事情应该做:

{{1}}

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

答案 1 :(得分:1)

Arash Milanis回答让我意识到我试图在val()上设置td而不是它的孩子。这段代码最终起作用,因为td只有一个孩子:

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