【问题标题】:jquery change all value attr for input fieldsjquery更改输入字段的所有值attr
【发布时间】:2015-04-01 18:47:58
【问题描述】:

这不适用于表单域。

假设我在 html 中有这个:

<input id="something" value="myvalue">
<input id="somethingelse" value="myvalue">

我有 javascript 可以做到这一点:

something.value="ME";
somethingelse.value="TOO";

我想操纵 DOM,以便当我们检查元素“某物”时,它反映了这一点:

<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());
})

它会提醒每个值 - 所以选择器很好。

我做错了什么?

【问题讨论】:

  • 仅供参考,对字符串执行 toString() 是没用的。
  • 您将不得不更深入地描述您的问题。不清楚你想做什么。
  • 输入字段的类型是什么?应该是文本,如果你有“数字”,你什么也看不到
  • 您的代码在这个小提琴中按原样工作:jsfiddle.net/7bkcc9Lr 如果我检查输入,我会看到它们的值。
  • 瑞克 - 我不知道如何标记你的答案正确,或者即使我需要,但这是我的小提琴,它确实有效。

标签: jquery selector each attr


【解决方案1】:

你可以使用一个类来做到这一点:

$(function(){
$("#Goo").click(function(){
    $(".test").each(function() {
        $(this).val("otherValue");
    });
});
});

工作小提琴:http://jsfiddle.net/xtzqggot/

【讨论】:

    【解决方案2】:

    简单的$("input").attr("value", "NewString") 适合我。您可以传入一个函数作为第二个参数来根据您的需要修改值。

    See Fiddle

    【讨论】:

    • @epascarello 显然不是。感谢您的提醒。
    • 同样不行,使用$('selector').val()返回旧值。
    【解决方案3】:

    Rick 在代码中给出了正确的答案——虽然我的问题看起来是正确的,但我在 jsfiddle 中的代码肯定有某种未报告的错误,因为它根本不起作用。从 Rick 的小提琴中粘贴代码效果很好。这是我的答案和更多类型的输入字段。

    答案:

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

    为此提琴:

    http://jsfiddle.net/t2nrkeyt/
    

    【讨论】:

      【解决方案4】:

      它可以更简单。去做吧:

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

      【讨论】:

        【解决方案5】:

        您可以使用选择器访问所有后代

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-07
          • 1970-01-01
          • 1970-01-01
          • 2018-05-23
          • 1970-01-01
          • 2015-07-13
          • 2021-10-25
          • 2011-10-21
          相关资源
          最近更新 更多