使用jQuery重置字段

时间:2012-07-31 16:48:41

标签: javascript jquery html

我正在尝试重置部分中的字段(选择和文本框)。以下是我到目前为止的情况:

var $inputs = $('#StudentTable :select');
$inputs.each(function () { 
  if ($(this).name = "TeachingAsstSelect") { 
    $('select[name="TeachingAsstSelect"]').each(function () { 
      $(this).text(""); 
    }) 
  } 
  else { 
    $(this).val("Select");
  } 
});

这里" TeachingAsstSelect"正在被清除,但其他选择未被重置。我错过了什么吗?更重要的是,我是以正确的方式做到的吗?

2 个答案:

答案 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");