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

时间:2014-07-03 20:15:06

标签: javascript jquery html css

我使用此代码更改上一个文本框的文本,但它不起作用,我该怎么办? 我试图添加一个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>

2 个答案:

答案 0 :(得分:1)

使用val()输入如下:Live Demo

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

答案 1 :(得分:0)

您已经犯了一些JS语法错误。

所以你想找到&#34;输入&#34; siblings(这是第二个参数)位于&#34; li.start&#34;之前。直到前面的&#34; div.stop&#34;并给他们一个新的HTML值文本?

以下是更新(根据您更新的问题)提出的建议:FIDDLE

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

作为prevAll()方法的jQuery参考,它只影响兄弟姐妹,这不是你的HTML。相反,将父方法和prev方法结合起来。

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