我有以下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 。 我必须隐藏或禁用
答案 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 }) ...