2011-08-10 143 views
4

我正在一個項目中,我有一個選擇標記與其在JavaScript函數中生成的選項。我目前正在使用詳細的描述填充每個選項的「標題」屬性。
裏面的javascript函數我目前在做這樣的事情: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"; 

,但我試圖添加選項,選擇標記之前設置標題。 「選項」對象是否允許我設置「標題」屬性? JavaScript函數甚至沒有執行。有沒有辦法可以在JavaScript中設置「選項」HTML元素的「title」屬性?

+0

我不認爲'Option'對象是技術上的HTML節點直到它被添加到選擇。所以,如果它不支持'title'屬性,那麼它不會被轉換爲'title'屬性。 – OverZealous

+0

你的意思是什麼_「JavaScript函數甚至沒有執行?」_什麼JS函數? –

回答

6

它看起來像你使用jQuery。有一種更簡單的方法來做你想做的事情。只需使用the jQuery API而不是倒退回香草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

+0

@patrick感謝編輯,但小提琴並不打算有任何JS - 只是證明'

+0

糟糕,對不起。我完全錯過了這一點。以爲你剛剛粘貼了錯誤的鏈接。 – user113716

+0

謝謝你馬特。標題顯示爲最新版本的Firefox和IE中的工具提示。這是我發現爲每個選項顯示特定工具提示的最簡單方式。我沒有在Chrome中測試過它。你們有其他建議嗎?這是我原來的帖子:http://stackoverflow.com/questions/6949712/struts2-how-to-show-a-tooltip-for-each-dropdown-option-in-a-select-tag – Johnny

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);