我正在尝试重置部分中的字段(选择和文本框)。以下是我到目前为止的情况:
var $inputs = $('#StudentTable :select');
$inputs.each(function () {
if ($(this).name = "TeachingAsstSelect") {
$('select[name="TeachingAsstSelect"]').each(function () {
$(this).text("");
})
}
else {
$(this).val("Select");
}
});
这里" TeachingAsstSelect"正在被清除,但其他选择未被重置。我错过了什么吗?更重要的是,我是以正确的方式做到的吗?
答案 0 :(得分:1)
对于jQuery对象,您应该使用attr()
方法,name
是DOM Element属性之一。
改变这个:
if ($(this).name = "TeachingAsstSelect") {
为:
if ($(this).attr('name') == "TeachingAsstSelect") {
另请注意,为了进行比较,您应该使用==
运算符,目前您正在设置值。
答案 1 :(得分:1)
如果您要测试字符串的相等性,则应使用==
或===
。请参阅此处的表单:Which equals operator (== vs ===) should be used in JavaScript comparisons?
另外,正如@Raminson建议的那样,请尝试使用attr()
方法。
if ($(this).attr('name') == "TeachingAsstSelect") {
或者更好的是,将.each()
嵌套两次,可能效果不如其他解决方案。
我还注意到您正在if
条件中测试名称,然后使用jquery选择器再次匹配[name="TeachingAsstSelect"]
。怎么样简化:
var $teachingAsstInputs = $('#StudentTable :select[name="TeachingAsstSelect"]');
$($teachingAsstInputs).text("");
var $otherInputs = $('#StudentTable :select').not('[name="TeachingAsstSelect"]');
$($otherInputs).val("Select");