我想知道什么是最佳的方式来将选择菜单转换为具有初始选定状态的按钮。转换选择默认的选择菜单到按钮
我在Stackoverflow上搜索了这个解决方案,这是我发现的足够接近的唯一链接。但是,如果只有一个具有“selected”属性的项目应该突出显示,那么代码在制作所有最初选定的项目时会出错。 Original Stackoverflow Post
$(function() {
$("select option").unwrap().each(function() {
var btn = $('<div class="btn">' + $(this).text() + '</div>');
if ($(this).is(':checked')) btn.addClass('on');
$(this).replaceWith(btn);
});
$(document).on('click', '.btn', function() {
$('.btn').removeClass('on');
$(this).addClass('on');
});
});
div.btn {
display: inline-block;
/** other styles **/
}
div.btn.on {
background-color: #777;
color: white;
/** styles as needed for on state **/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="text">
<option selected>Yes</option>
<option>No</option>
</select>
'selected'是一个布尔属性,它并不需要有任何价值。只需检查'$(this).attr('selected')'(其结果为真/假)就足够了:) – Terry