jquery简单示例change()函数

时间:2012-05-11 18:15:48

标签: jquery

我只是在学习jQuery,我很高兴。

看,我们有2个div如下:

<div id="div1">
<ul>
    <li> This is Line 1</li>
    <li> This is Line 2</li>
    <li> This is Line 3</li>
    <li> This is Line 4</li>
    <li> This is Line 5</li>
</ul>
</div>

<div id="div2">
<ul>
    <li> <input type="text" /></li>
    <li> <input type="text" /></li>
    <li> <input type="text" /></li>
    <li> <input type="text" /></li>
    <li> <input type="text" /></li>
</ul>
</div>

因为我刚刚学习了change()函数,这就是我想要做的: 当div2中输入框的每个值发生变化时,相同数字的div1 li应该更改为输入的值,例如,如果我们开始在div2中输入第二个输入框,则第二个li文本应该是我们在第二个输入框。

这是我到目前为止所尝试的,但不起作用:

<script type="text/javascript">
    $(document).ready(function(){
        $('#div2 :input').change(function(i){
            var str = $(this).text;
            $('#div1 li').eq(i).text(str);
        });
    });
</script>

这有什么问题? 提前致谢

4 个答案:

答案 0 :(得分:6)

传递给change()函数的参数不是索引。这是一个event object。您需要使用index()自己获取索引。

此外,text()是错误的方法,您需要使用val()来获取输入的值。

$('#div2 :input').change(function() {
    var str = $(this).val(), // You need to use `val` to get the value (also, note the "()" here)
        index = $(this).parent().index(); // this gets the index of the input
    $('#div1 li').eq(index).text(str);
});​

DEMO:http://jsfiddle.net/skram/UJBCr/1/

答案 1 :(得分:2)

使用val()(因为您在文字输入之后)而不是text()

 var str = $(this).val();

答案 2 :(得分:1)

更改var str = $(this).text

as

var str = this.value; //or $(this).val()

答案 3 :(得分:1)

使用此:

 $('#div2 :input').change(function(e){
      var i = $('#div2 :input').index(this);
      $('#div1 li').eq(i).text( $(this).val() );
 });

DEMO