javascript:使用javascript在select标签中设置选项标题

时间:2011-08-10 23:39:04

标签: javascript jquery html title option

我正在开发一个项目,我有一个select标签,其选项是在javascript函数中生成的。我目前正在填写每个选项的“标题”属性,并附有详细说明 在javascript函数内部,我目前正在做这样的事情:

var country = new Option("countryUSA", "United States of America");
$("#mySelect").get(0).options[1]=country;

这很好用,选项显示出来。但是,我还需要设置该html选项元素的“title”属性。我尝试过这样的事情:

country.title="Full description of USA";

但它不起作用。
我知道我可以这样做:

 $("#mySelect").get(0).options[1].title="My title";

但是我在将选项添加到select标签之前尝试设置标题。是不是“Option”对象假设允许我设置“title”属性? javascript函数甚至没有执行。我无法在javascript中为“option”html元素设置“title”属性吗?

2 个答案:

答案 0 :(得分:7)

看起来你正在使用jQuery。有一种更简单的方法可以做你想要的。只需使用the jQuery API而不是回归到vanilla DOM:

$('<option>',
{
    value: 'countryUSA',
    title: 'Full description of USA',
    text: 'United States of America'
}).appendTo("#mySelect");

也就是说,您是否希望设置title以便在将鼠标悬停在<option>上时显示浏览器原生工具提示?至少在Chrome中,不会出现此类工具提示。

亲自尝试:http://jsfiddle.net/GMTLn/1/


修改 Chrome和Safari不会在<option>上显示具有title属性的工具提示,因为WebKit不会。请参阅this bug report

答案 1 :(得分:1)

您可以设置标题属性

   $('#mySelect').append(
   $("<option/>", { text: value }).attr("title",value)); 

以下是工作示例http://jsbin.com/ozudoTod/1/

或者这样:

     value = cleanNulls( value );
     var option = $( '<option/>', {
     title: value,
     text: value
     });
     $('#mySelect').append( option );