2013-11-26 78 views
2

的Javascript,jQuery的,HTML添加title屬性與.append()

我動態添加選擇選項的選擇框,動態地選擇選項。我將數組中的每個唯一元素添加到select元素中作爲選項。它效果很好,但我需要同時添加一個title屬性,其值與選項文本相同。最終目標是爲每個選項製作工具提示。

所以不是<option>value</option>,它看起來像

<option title="value">value</option> 

這是否有意義?

當前HTML:

<select id="Process_Issue" class="fieldLabel2 IncidentInputField dynamicFields1"></select> 

JS:

$.each(eliminateDuplicates(aryProcess), function (key, value) { $('#Process_Issue').append($("<option/>", { text: cleanNulls(value) })); }); 

回答

2

你可以只是在附加指定標題:

JSFiddle

HTML

<select id="my_select"></select> 

JS

$('#my_select').append('<option title="value1">value1</option>'); 
$('#my_select').append('<option title="value2">value2</option>'); 
$('#my_select').append('<option title="value3">value3</option>'); 
+0

到目前爲止所有的答案都是正確的,但是你已經有了它,並且它更符合我當前的代碼。我明顯地把它放在一個循環中(而不是value1,value2等)。感謝您的迅速反應! – dah97765

+0

很高興我能提供幫助,我認爲一個更直接的答案就是你想要的。 – MonkeyZeus

1

您似乎是使用相同的選擇多次爲陣列中的每個迭代。而是緩存它並節省一些查找時間。

var $select = $('#Process_Issue'); 
$.each(eliminateDuplicates(aryProcess), function (key, value) { 
    var val = cleanNulls(value); 
    $select .append($("<option/>", { 
      text: val, 
      title: val 
    })); 
}); 

如果這不起作用使用.attr方法掛鉤的屬性的元素。

var $select = $('#Process_Issue'); 
$.each(eliminateDuplicates(aryProcess), function (key, value) { 
    var val = cleanNulls(value); 
    $('<option/>').attr({ 
     text: val, 
     title: val 
    }).appendTo($select); 
}); 
+0

你是對的。但是,在每個選擇框中只會有幾個選項(多個選擇框,全部按需動態發生),但每個選項都有大約12個或更少的選項,所以在這種情況下我並不關心速度。好答案! – dah97765

2

您可以設置title屬性

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

這裏是工作示例http://jsbin.com/ozudoTod/1/

+0

根據MonkeyZeus的回答,這幾乎就是我最終得出的結論。我喜歡格式:$('#Process_Issue')。append($(''));而不是你有什麼(以及我發佈這個問題時所擁有的)。我認爲它看起來更好,一眼就看不到混亂。 – dah97765

1

一個更清潔的方式與所有值之前創建元素然後附加像這樣:

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

$('#Process_Issue').append(option); 

這種方法是一個更清潔,更容易閱讀/維護n

+0

與Sushanth的答案非常相似..也是一個很好的答案。謝謝! – dah97765