我如何使用jQuery将已选择项目的“下一个”项目设置为“已选中”。
例如,如果我有:
<select>
<option value="1" >Number 1</option>
<option value="2" selected="selected">Number 2</option>
<option value="3" >Number 3</option>
<option value="4" >Number 4</option>
</select>
我们可以看到选择了“Number 2”,并且使用jQuery,我想将“Number 3”设置为选中,并从“Number 2”中删除所选的“属性”。我假设我需要使用 next 选择器,但我不太确定如何实现。
答案 0 :(得分:115)
<强>更新强>
从jQuery 1.6+开始,在这种情况下你应该使用prop()
而不是attr()
。
属性和属性之间的区别非常重要 具体情况。在jQuery 1.6之前,有时会使用.attr()方法 在检索某些属性时考虑了属性值, 这可能会导致行为不一致。从jQuery 1.6开始,.prop() 方法提供了一种显式检索属性值的方法 .attr()检索属性。
var theValue = "whatever";
$("#selectID").val( theValue ).prop('selected',true);
原始答案:
如果您想通过选项的值选择,请选择其位置的REGARDLESS(此示例假设您有一个选择的ID):
var theValue = "whatever";
$("#selectID").val( theValue ).attr('selected',true);
您无需“取消选择”。当您选择另一个时,这会自动发生。
答案 1 :(得分:60)
$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');
在这里查看工作代码 http://jsbin.com/ipewe/edit
答案 2 :(得分:17)
从版本1.6.1开始,建议将方法prop用于布尔属性/属性,例如selected,readonly,enabled,...
var theValue = "whatever";
$("#selectID").val( theValue ).prop('selected',true);
有关详细信息,请参阅http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/
答案 3 :(得分:6)
你可以使用
$('option:selected').next('option')
或
$('option:selected + option')
并设置值:
var nextVal = $('option:selected + option').val();
$('select').val(nextVal);
答案 4 :(得分:3)
如果你想指定select的ID:
$("#nextPageLink").click(function(){
$('#myselect option:selected').next('option').attr('selected', 'selected');
$("#myselect").change();
});
如果单击ID为“nextPageLink”的项目,将选择下一个选项并调用onChange()事件。它可能看起来像这样:
$("#myselect").change(function(){
$('#myDivId').load(window.location.pathname,{myvalue:$("select#myselect").val()});
});
OnChange()事件使用Ajax将某些东西加载到指定的div中。
window.location.pathname =实际地址
定义了OnChange()事件,因为它允许您不仅使用netx / prev按钮更改值,而且直接使用标准选择。如果更改了值,页面会自动执行某些操作。
答案 5 :(得分:1)
这就是我刚刚使用的,我喜欢它的清洁程度: - )
$('select').val(function(){
var nextOption = $(this).children(':selected').next();
return $(nextOption).val();
}).change();
答案 6 :(得分:1)
$('your_select option:selected').next('option').prop('selected', true)
答案 7 :(得分:0)
找到该行,然后
var row = $('#yourTable');
您要选择的值
var theValue = "5";
row.find("select:eq(2)").find("option[value="+theValue+']').attr('selected','selected');
答案 8 :(得分:0)
$('#next').click( function(){
$('#colored_background option:selected').next('option').attr('selected', 'selected');
changeBackgroundColor();
});
在What is my favorite color?工作。点击箭头。
答案 9 :(得分:0)
$("select").prop("selectedIndex",$("select").prop("selectedIndex")+1)
答案 10 :(得分:0)
$('#my_sel').val($('#my_sel option:selected').next().val());
$('#my_sel').val($('#my_sel option:selected').prev().val());