jquery - 为什么我们用select标签写.attr('selected','selected')

时间:2013-04-01 09:36:08

标签: jquery select attr selected

为什么我们使用select标记

编写.attr('selected','selected')

例如:

$('#countryList option').filter(function () {
 return ($(this).text() == findText); }).attr('selected','selected');
});

这究竟意味着什么?

7 个答案:

答案 0 :(得分:2)

.attr('selected','selected')的解释。

.attr内的第一个参数表示要指向的attribute,而属性的第二个参数集value表示作为第一个参数传递。

如果我们只有.attr('selected'),那么它只返回selected属性的值。

答案 1 :(得分:0)

  

为什么我们写.attr('selected','selected')

这就是jQuery允许选择的方式,如果要设置select的选项,可以使用val()来设置所选选项

$('#countryList').val(5); // it will set the selected attribute for option having value 5

答案 2 :(得分:0)

.attr() jquery方法用于设置选择器的属性。 因此,在您的情况下,此函数用于将文本显示为下拉列表中的选定内容。

See tutorial here

答案 3 :(得分:0)

通常,大多数浏览器仅通过其存在/不存在而忽略所选属性,而不管其值如何。根据规范,这是一个布尔属性(通过javascript设置时),但在HTML标记中,此属性通常由其存在/不存在表示。这意味着该元素默认情况下是下拉列表中可见的选项。

答案 4 :(得分:0)

看看发生了什么:

$('#countryList option').filter(function () {
   return ($(this).text() == findText); 
}).attr('selected','selected');
}); //<---------this is extra

好的但问题是为什么我们用.attr('selected','selected')标记select

如果您发现自己没有将所选属性设置为<select>,而是将<option>设置为包含。{/ p>

您的代码会将所选属性设置为option,其中包含的文本等同于findText

答案 5 :(得分:0)

selected<option>的布尔属性;以HTML属性表示,其值为空(或未指定)或等于属性名称本身以指示true(按惯例)。

$('#countryList option').filter(function () {
   return ($(this).text() == findText); 
}).attr('selected','selected');

该代码为第一个匹配的选项元素设置selected属性。代码实际上有一些问题:

  1. 无论过滤结果如何,都会调用.attr()函数。
  2. selected属性严格来说不是属性,而是属性。
  3. 可以像这样重写:

    $('#countryList option').each(function () {
        if (this.text == findText) {
            this.selected = true;
            return false; // stop searching after we find the first match
        }
    });
    

答案 6 :(得分:0)

在任何编程语言中,如果要设置属性,必须指定引用该属性的值。所以jquery做同样的事情。