如何使用prevAll()更改文本框文本

How to change a textbox text with prevAll()

本文关键字:文本 何使用 prevAll      更新时间:2023-09-26

我用这个代码来改变以前的文本框的文本,但它不工作,我该怎么办?
我试着添加一个CSS类,以确保它能找到文本框,当然它能找到文本框,但不能改变值。

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $("li.start").prevUntil("div.stop","input").text("!");
                // $("li.start").prevUntil("div.stop","input").value("!"); not working too
            });
    </script>
    </head>
    <body>
        <div style="width:500px;" class="siblings">
        <div class="stop" > </div>
     <input id="Text1" type="text" />  
     <ul> 
    <li>li (the previous sibling)</li>
    <li>li (the previous )</li>                            
     <li>li (the previous)</li>
     <li class="start">li (sibling with class name "start")</li>
    <li>li (sibling)</li>
    <li>li (sibling)</li>
  </ul>   
</div>
    </body>
</html>

像这样使用val()作为输入:Live Demo

$("li.start").prevUntil("div.stop").val('!');

你犯了一些JS语法错误。

所以您想要找到"li"前面的"input"兄弟(即第二个参数)。"开始"到前面的"div.stop",并给他们一个新的HTML值文本?

这是更新的(至于你更新的问题)小提琴我的建议:小提琴

  $(document).ready(function(){
     $("li.start").prevUntil("div.stop, input").html('!');
  });

作为jQuery引用的prevAll()方法,它只影响到兄弟,那不是你的HTML。组合父方法和prev方法。

   $("li.start").parent("ul").prev('input').val('!'); //UPDATED