我有这段用于选择选项的代码:
<select class="select-box" name="select-choice-month" id="select-locations">
<option id="1">Select Region</option>
<option id="2" value="eu">Europe</option>
<option id="3" value="nam">North America</option>
<option id="4" value="sam">Latin America</option>
<option id="5" value="aspa">Asia/Pacific</option>
</select>
在选择更改时,我已经必须像这样更改它的背景(显示或隐藏特定的 div):
$('#select-locations').change(function() {
$('#form1, #form2, #form3, #form4, #form5').hide();
$('#form' + $(this).find('option:selected').attr('id')).show();
});
但是,现在我有了迷你导航,它也显示或隐藏相同的 div
<div id="map-menu">
<a href="#" id="3">North America</a>
<a href="#" id="4">Latin America</a>
<a href="#" id="5">Asia/Pacific</a>
</div><!-- end of map-menu -->
对此的 Jquery:
$('#map-menu a').click(function() {
$('#form1, #form2, #form3, #form4, #form5').hide();
$('#form' + $(this).attr('id')).show();
});
单击 anchor 并更改 div 以更改所选选项的输出(名称)时,如何实现?在第一个有效的示例中,但是当我通过 anchor 更改它时它不起作用 ...
感谢任何答案
最佳答案
如果我正确阅读了您的问题,那么我认为以下内容应该可以解决您的问题并减少代码重复。
$('#map-menu a').click(function() {
$('#select-locations').val(this.id).change();
});
它将监听对 a
的点击,然后将选择列表的值设置为被点击的 id
。一旦完成,它将触发选择列表上的 change
事件,从而触发您的 change
监听器。
还有关于您的 id
的注释,它们不应该只是一个数字:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
来源:https://stackoverflow.com/a/703790/461813
根据评论更新工作
如果你想使用你当前的 HTML 那么它会是这样的:
$('#map-menu a').click(function() {
var select = $('#select-locations');
var option_to_select = $('option[id="' + this.id + '"]', select);
select.val(option_to_select.val()).change();
});
但应该注意的是,您的代码目前没有唯一的 id
,因此我建议您将它们命名为:
select_option_1
anchor_option_1
那么上面的代码就变成了:
$('#map-menu a').click(function() {
var option_id = this.id.replace('anchor', 'select');
var select = $('#select-locations');
var option_to_select = $('option[id="' + option_id + '"]', select);
select.val(option_to_select.val()).change();
});
这里是一个你可以运行的 jsFiddle:http://jsfiddle.net/6tHnj/
关于javascript - Jquery 更改选择选项取决于 anchor 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8952491/