选项HTML,改变SelectBox插件的默认结构
option HTML, change default structure of SelectBox plugin
我在这个编码的世界有点新,所以对我来说,这看起来像一个简单的问题,但我不能解决它。给我这样痛苦的功能是
function _renderOptions() {
var optionHTML = [];
$options.each(function(i, itm) {
var $this = $(this),
optgroup = $this.parents('optgroup'),
addlOptClasses = "",
iconMarkup = "";
// render optgroups if present in original select
if (optgroup.length > 0 && $this.prev().length === 0) {
optionHTML.push('<dt>' + optgroup.attr('label') + '</dt>');
}
// if option has a classname add that to custom select as well
if (itm.className !== "") {
$(itm.className.split(" ")).each(function() {
iconMarkup += '<span class="' + this + '"></span>';
});
}
// add selected class to whatever option is currently active
if (itm.selected && !itm.disabled) {
_selectedValue = iconMarkup + _truncate($(itm).html());
addlOptClasses = " " + SELECTED_CLASS;
}
// Check for disabled options
if (itm.disabled) {
addlOptClasses += " " + DISABLED_CLASS;
}
optionHTML.push('<dd class="itm-' + i + ' ' + addlOptClasses + '">' + iconMarkup + itm.innerHTML + '</dd>');
});
if ($selectedValue && $selectedValue.get(0) !== null) {
$selectedValue.html(_selectedValue);
}
return optionHTML.join("");
}
我想要的是如果选项有一个类名,相同的类被添加到<dd>
的类而不是创建<span>
并添加类
从项目中取出类并将其添加到dd
元素:optionHTML.push('<dd class="itm-' + i + ' ' + addlOptClasses + ' ' + $(itm).attr("class") + '">' + iconMarkup + itm.innerHTML + '</dd>');
function _renderOptions() {
var optionHTML = [];
$options.each(function(i, itm) {
var $this = $(this),
optgroup = $this.parents('optgroup'),
addlOptClasses = "",
iconMarkup = "";
// render optgroups if present in original select
if (optgroup.length > 0 && $this.prev().length === 0) {
optionHTML.push('<dt>' + optgroup.attr('label') + '</dt>');
}
// if option has a classname add that to custom select as well
if (itm.className !== "") {
$(itm.className.split(" ")).each(function() {
iconMarkup += '<span class="' + this + '"></span>';
});
}
// add selected class to whatever option is currently active
if (itm.selected && !itm.disabled) {
_selectedValue = iconMarkup + _truncate($(itm).html());
addlOptClasses = " " + SELECTED_CLASS;
}
// Check for disabled options
if (itm.disabled) {
addlOptClasses += " " + DISABLED_CLASS;
}
optionHTML.push('<dd class="itm-' + i + ' ' + addlOptClasses + ' ' + $(itm).attr("class") + '">' + iconMarkup + itm.innerHTML + '</dd>');
});
if ($selectedValue && $selectedValue.get(0) !== null) {
$selectedValue.html(_selectedValue);
}
return optionHTML.join("");
}
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何使用铁流星与流星的默认路线
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 更改JSON对象的结构
- CKeditor:更改对话框中的默认选择选项
- 在不阻止默认行为的情况下检测IE10中的缩放
- 角度控制器结构
- 如何从外部页面激活非默认引导选项卡
- 防止默认锚点行为AngularJS
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jpm的默认Firefox路径没有'不起作用
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 如何使用默认值对参数进行解结构
- 如何在jQuery移动多页面模板结构中显示第二页作为默认页面
- 选项HTML,改变SelectBox插件的默认结构