这是我的代码 -
var obj = $('[id$=ddlInsert4]')
obj.disable = true;
obj 是一个下拉列表,但 disable 调用不会禁用下拉列表。
alert(obj.val()) //this returns the correct value
由于我的警报返回正确的值,我知道我的 jQuery 语法是正确的。我错过了什么?
这是我的代码 -
var obj = $('[id$=ddlInsert4]')
obj.disable = true;
obj 是一个下拉列表,但 disable 调用不会禁用下拉列表。
alert(obj.val()) //this returns the correct value
由于我的警报返回正确的值,我知道我的 jQuery 语法是正确的。我错过了什么?
尝试使用.prop如下,
$('[id$=ddlInsert4]').prop('disabled', true);
您可以使用.prop上面的 jQuery 函数
或者
$('[id$=ddlInsert4]')返回一个 jquery 对象(选择器总是返回 jQuery 对象的数组)所以你不能像这样在 jQuery 对象上设置 DOM 属性..
您需要循环迭代并设置属性 ex: $('[id$=ddlInsert4]')[i].disabled = truewhere iis the index.
obj是一个 jQuery 对象,而不是一个 DOM 元素。你需要做$(obj).prop('disabled', true);。或者更好的是,如果您不需要obj其他地方的变量,只需执行以下操作:
$('[id$=ddlInsert4]').prop('disabled', true)
要与原生 DOM 元素交互,您可以执行[0](或.get(0))。然后你可以这样做:
obj[0].disabled = true;
(请注意,该属性disabled不是disable)
注意:$('[id$=ddlInsert4]')可以返回多个元素,并且[0]只会得到第一个。如果有多个,您需要遍历所有这些。不过我建议使用 jQuery.prop方法,因为它会为您循环遍历所有元素。