gpt4 book ai didi

jquery - 使用 jQuery 将所选属性添加到选择菜单中的选项

转载 作者:行者123 更新时间:2023-12-03 22:28:28 26 4
gpt4 key购买 nike

我正在制作一个选择菜单插件来替换丑陋的默认选择,并在不同操作系统之间保持一致。

这是演示(仅限 firefox 和 webkit)
http://spacirdesigns.com/selectMenu/

它已经可以工作了,但是我在将“selected”属性分配给该选项时遇到问题。该代码适用于任何其他属性,但我无法使其适用于所选属性。

这有效:

select.find('option')
.removeAttr('whatever')
.eq(index).attr('whatever', 'hello');

这不会:

select.find('option')
.removeAttr('selected')
.eq(index).attr('selected', 'selected');

这是到目前为止的代码:

(function($){

$.fn.selectMenu = function() {

var select = this;
select.hide();

var title = select.attr('title');
var arrow = 'img/arrow.png';
var items = '';

select
.children('option')
.each(function(){
var item = $(this).text();
if ($(this).val() != '') {
$(this).attr('value', item);
}
items += '<li>' + item + '</li>'
});

var menuHtml =
'<ul class="selectMenu">' +
'<img src="' + arrow + '" alt=""/>' +
'<li>' + title + '</li>' +
'<ul>' + items + '</ul>' +
'</ul>';

select.after(menuHtml);

var menu = $(this).next('ul');
var list = menu.find('ul');

menu
.hover(function(){}, function(){
list.hide();
})
.children('li').hover(function(){
list.show();
});

menu.find('ul li').click(function(){
var index = $(this).index();
menu.children('li').text($(this).text());
select.find('option')
.removeAttr('selected')
.eq(index).attr('selected', 'selected');
list.hide();
});

};

})(jQuery);

最佳答案

从 jQuery 1.6 开始,“要检索和更改 DOM 属性,例如表单元素的选中、选定或禁用状态,请使用 .prop() 方法。”

$("#someselect option[value=somevalue]").prop("selected", "selected")

编辑:

选择选项:

$("#someselect option[value=somevalue]").prop("selected", true)

取消选择选项:

$("#someselect option[value=somevalue]").prop("selected", false)

关于jquery - 使用 jQuery 将所选属性添加到选择菜单中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com