我正在使用“选择插件”而不确定如何将属性添加到选择列表的选项标签。
我已经尝试过使用jQuery准备文档,但没有运气。
答案 0 :(得分:4)
您需要将Chosen.Jquery.js修改为以下内容才能使其正常工作
使用Chosen 1.0版本
第62行添加此行代码
this.parsed.push({
array_index: this.parsed.length,
options_index: this.options_index,
value: option.value,
text: option.text,
html: option.innerHTML,
title: option.title, // this is Line 62 add this line
selected: option.selected,
disabled: group_disabled === true ? group_disabled : option.disabled,
group_array_index: group_position,
classes: option.className,
style: option.style.cssText
});
修改第255行
return "<li title=\"" + option.title +"\" class=\"" + (classes.join(' ')) + "\"" + style + " data-option-array-index=\"" + option.array_index + "\">" + option.search_text + "</li>";
答案 1 :(得分:1)
I have tried this..but no luck
这取决于你的尝试。 给这个函数一个go,用你希望它所选择的副本继承标题的select元素调用它
function cloneTitles(selectBox) {
//make sure it has already been chosen-ised
selectBox = $(selectBox).chosen();
//get all the original options, should be in same order as chosen ones
var origOpts = selectBox.find('option');
//get all the chosen-created 'options'
//NB there may be a better way to grab the chosen created element
var chznOpts = selectBox.next().find('.active-result')
//foreach option
origOpts.each(function(index, origOpt) {
//copy the attribute from the original
$(chznOpts[index]).attr('title', $(origOpt).attr('title'));
});
}
I have tried this on document ready
你的问题可能是你在选择之前做了你尝试过的任何事情.js已经转换了你的选择框,但是这个功能应该减轻它。
此外,如果您需要多个选择框,请使用.each()
(例如selectArray.each(function(i, select) { cloneTitles(select); })
我假设你使用的是jQuery而不是Prototype(给出你的最后一行)
所以你可以传入'#id'而不是&lt; DOMObj&gt;如果你想要的话
可以修改代码以克隆给定属性,而不是'title'
,甚至是给定属性的数组!
答案 2 :(得分:0)
使用选择的1.1版本
html: option.innerHTML, // Search
title: option.title, // Add
option_el.innerHTML = option.search_text; // Search
option_el.title = option.title; // Add