使用动态值在jQuery中查找元素

时间:2013-09-11 13:20:39

标签: jquery

我有以下jquery脚本

var $checked = $inputs.filter(':checked');
var numChecked = $checked.length;

$checked.each(function () {
    var val = (this).value;

    if (val.indexOf("Ya") != -1) {
        alert('old val   ' + val);
        val = val.replace("Ya", "Y2a");
        alert('new val   ' + val);
        alert($(':input[value^="' + val + '"]').value);

        //$(val).attr({ 'disabled': true, 'aria-disabled': true })[flag ? 'addClass' : 'removeClass']('ui-state-disabled');
    }
}); 

旧值为:ltrYaxis0

新值:ltrY2axis0

我能够更换 但当我试图测试它是否找到新的输入时,它的说法是 undefined 。 我必须隐藏或禁用

3 个答案:

答案 0 :(得分:1)

试试这个

 val = val.replace("Ya", "Y2a");
       $(':input[value='+val + ']'.attr({ 'disabled': true, 'aria-disabled': true })

答案 1 :(得分:0)

如果我正确理解了这个要求,那么

var $checked = $inputs.filter(':checked');
var numChecked = $checked.length;

$checked.filter(function () {
    return this.value.indexOf("Ya") != -1;
}).val(function (idx, val) {
    return val.replace("Ya", "Y2a");
}).attr({
    'disabled': true,
    'aria-disabled': true
})[flag ? 'addClass' : 'removeClass']('ui-state-disabled');

答案 2 :(得分:0)

这一行

var val = (this).value;

有2个错误。

  • 你错过了$
  • 而不是.value但.val()

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

小心:

    $(val).attr({ 'disabled': true, 'aria-disabled': true })

它应该是

$(this).attr({ 'disabled': true, 'aria-disabled': true }) ...