我有这段HTML代码:
<table id="mytable">
<tr>
<td><input type=text value="hello"></td>
<td><input type=text value="George"></td>
</tr>
</table>
<button onclick="return getValues();">
和JS(Jquery)代码:
function getValues(){
var inputs = $('#mytable').find("input");
for (var u = 0; u<inputs.length ; u++){
$(inputs[u]).parent().html($(inputs[u]).attr("value"));
}
return false;
}
所以基本上按下按钮我想搜索所有输入并用它们的值替换它们。
但是HTML不会动态更新文本字段的值,因此我可以输入我想要的任何内容,但它总是会生成带有“hello”和“George”的表。我想删除文本字段,但保留其实际的“值”,而不是保存在属性中的值。
像textfield.getActualText()之类的东西,因为Jquery attr(“value”)返回在页面加载时分配的值。
希望你知道我的意思。
文本字段没有名称,因为它们不需要它们,JS无论如何都会删除它们。
答案 0 :(得分:1)
您应该使用.val()
而不是.attr()
,因为.attr()只返回输入元素设置的初始值。并且您不需要使用for
循环来迭代包装为jquery对象的一组元素,您只需使用jquery的.each()
函数来迭代它。
尝试,
$('#mytable').find("input").each(function(){
$(this).parent().html($(this).val());
});