2

可能重复:
设置没有值的属性

有时,在处理 HTML 时,需要在不使用任何值的情况下设置 DOM 元素的属性,例如,请参见selected此处的参数:

<select id="auto-makers">
  ...
  <option value="fiat" selected>FIAT</option>
  <option value="ford">FORD Motor Company</option>
  <option value="gm">General Motors</option>
  ...
</select>

HTML 文档中的这种属性并不罕见。例如,下面是可能的属性列表:

  • checked;
  • selected;
  • required;
  • multiple;
  • disabled;
  • 等等

如何使用 Javascript 和/或 jQuery 在运行时设置没有值的属性?

4

1 回答 1

2

按照您的示例,假设您有

<select id="auto-makers">
  ...
  <option value="fiat">FIAT</option>
  <option value="ford">FORD Motor Company</option>
  <option value="gm">General Motors</option>
  ...
</select>

并且您想将该selected属性添加<option>value="fiat". 因此,使用纯 Javascript,您可以使用setAttribute方法:

var select = document.getElementsById('auto-makers');
for (var i=0; i<select.options.length; i++){
   if (select.options[i].value=="fiat"){
     select.options[i].setAttribute('selected','');
     break;
   }
}

而使用jQuery,您可以简单地使用以下attr方法:

$('#auto-makers').find('option[value="fiat"]').attr('selected','');

在这两种情况下,都会传递一个空字符串作为属性的值。

您可以通过在您提供的更改之后查看相关的 HTML 代码来验证输出是否是所需的。

最后,注意一个类似的问题是:“ Set attribute without value ”。

于 2013-01-24T11:01:34.683 回答