Jquery和输入值选择器问题

时间:2013-04-30 10:29:34

标签: jquery jquery-selectors

Html代码:

<input type="text" name="input-1" class="input-1" value="001 / 2007">
    <input type="button" id="asd" value="check">

JS代码

$(document).ready(function (){
    $("#asd").click(function (){
        alert($("input[value='001 / 2007']").val());
        $("input[value='001 / 2007']").val("001-2007");
    });
});

更改后,通过Jquery更改的值不可用于输入[value ...]选择器,它仍然基于旧值进行选择。 这是实时代码http://jsfiddle.net/WwRVy/, 那么问题是如何根据最新值选择输入?

6 个答案:

答案 0 :(得分:1)

为什么不根据名称或只选择类?

$("#asd").click(function (){
    $("input[name='input-1']").val("001-2007");
});

答案 1 :(得分:0)

试试这个

Html代码:

<input type="text" name="input-1" class="input-1" value="001 / 2007">
<input type="button" id="asd" value="check">

JS代码

$(document).ready(function (){
 $("#asd").click(function (){
    alert($("input").val());
    $("input").val();
 });
});

答案 2 :(得分:0)

我的猜测是,jQuery .val()方法会更改属性值,而jQuery选择器会使用属性。有几种解决方法,即使用jQuery对象的[0]表示法并更改其value属性或使用.attr()更改它:

$("input[value='001 / 2007']").attr("value", "001-2007");

FIDDLE

P.S。:您最好更改选择该元素的方式,即为其分配idclass

答案 3 :(得分:0)

它是一个臭名昭着的JavaScript问题, 尝试

alert($('input[value="001 / 2007"]').val());

请注意,单引号和双引号是交换的

答案 4 :(得分:0)

你想做的就像

  $("input[value=001 / 2007]").val("001-2007");

修改后的jsfiddle链接为http://jsfiddle.net/WwRVy/5/

答案 5 :(得分:0)

尝试

$(document).ready(function (){
    $("#asd").click(function (){
        var inputs = $('input').filter(function(){
            return $(this).val() == '001 / 2007';
        });
        alert(inputs.val());
        inputs.val("001-2007");
    });
});

演示:Fiddle