jquery 更改输入字段的所有值属性
jquery change all value attr for input fields
这不适用于表单域。
假设我在 html 中有这个:
<input id="something" value="myvalue">
<input id="somethingelse" value="myvalue">
我有 javascript 这样做:
something.value="ME";
somethingelse.value="TOO";
我想操纵 DOM 以便当我们检查元素 "something" 时它反映了这一点:
<input id="something" value="ME">
如果我在 jquery 中明确地这样做,它会起作用:
$("#something").attr("value",something.value.toString());
但我需要更通用的东西 - 我需要更改每个输入项,使其表现得像这样。
所以我尝试了:
$("input").each(function () {
$(this).attr("value", this.value.toString());
})
但它根本没有改变。它不理会它。
所以我尝试了这个:
$("input").each(function () {
$(this).attr("value", "NeverA");
})
它也没有改变它。
但我试过了
$("input").each(function () {
alert(this.value.toString());
})
它会提醒每个值 - 所以选择器很好。
我做错了什么?
简单 $("input").attr("value", "NewString")
适合我。您可以传入一个函数作为第二个参数来根据需要修改值。
您可以使用 class:
$(function(){
$("#Goo").click(function(){
$(".test").each(function() {
$(this).val("otherValue");
});
});
});
工作fiddle:http://jsfiddle.net/xtzqggot/
Rick 在代码中给出了正确的答案 - 虽然我的问题看起来是正确的,但我在 jsfiddle 中的代码一定有某种未报告的错误,因为它根本不起作用。粘贴来自 Rick fiddle 的代码效果很好。这是我的 fiddle,其中包含答案和更多类型的输入字段。
答案:
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
<script>
something.value = "NEVER";
button.value = "Not OK";
ANum.value = 9342;
$("input").each(function () {
$(this).attr("value", this.value);
})
</script>
Fiddle为此:
http://jsfiddle.net/t2nrkeyt/
它可以更简单。就去做吧:
<div id="parentDivID">
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
</div>
<script>
$("#parentDivID").find('input').val('');
</script>
您可以使用选择器访问所有后代
<div id="parentDivID">
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
</div>
<script>
$("#parentDivID input").val('');
</script>
这不适用于表单域。
假设我在 html 中有这个:
<input id="something" value="myvalue">
<input id="somethingelse" value="myvalue">
我有 javascript 这样做:
something.value="ME";
somethingelse.value="TOO";
我想操纵 DOM 以便当我们检查元素 "something" 时它反映了这一点:
<input id="something" value="ME">
如果我在 jquery 中明确地这样做,它会起作用:
$("#something").attr("value",something.value.toString());
但我需要更通用的东西 - 我需要更改每个输入项,使其表现得像这样。
所以我尝试了:
$("input").each(function () {
$(this).attr("value", this.value.toString());
})
但它根本没有改变。它不理会它。
所以我尝试了这个:
$("input").each(function () {
$(this).attr("value", "NeverA");
})
它也没有改变它。
但我试过了
$("input").each(function () {
alert(this.value.toString());
})
它会提醒每个值 - 所以选择器很好。
我做错了什么?
简单 $("input").attr("value", "NewString")
适合我。您可以传入一个函数作为第二个参数来根据需要修改值。
您可以使用 class:
$(function(){
$("#Goo").click(function(){
$(".test").each(function() {
$(this).val("otherValue");
});
});
});
工作fiddle:http://jsfiddle.net/xtzqggot/
Rick 在代码中给出了正确的答案 - 虽然我的问题看起来是正确的,但我在 jsfiddle 中的代码一定有某种未报告的错误,因为它根本不起作用。粘贴来自 Rick fiddle 的代码效果很好。这是我的 fiddle,其中包含答案和更多类型的输入字段。
答案:
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
<script>
something.value = "NEVER";
button.value = "Not OK";
ANum.value = 9342;
$("input").each(function () {
$(this).attr("value", this.value);
})
</script>
Fiddle为此:
http://jsfiddle.net/t2nrkeyt/
它可以更简单。就去做吧:
<div id="parentDivID">
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
</div>
<script>
$("#parentDivID").find('input').val('');
</script>
您可以使用选择器访问所有后代
<div id="parentDivID">
<input id="something" value="myvalue">
<input id="somethingelse" value="SE">
<input id="ANum" type="number" value=99>
<input id="button" type="button" value="OK">
</div>
<script>
$("#parentDivID input").val('');
</script>