我在想;如何向此脚本添加目标数组?
$(document).ready(function () {
$('#kategorierbuttons').click(function(e)
{
var num = $(e.target).index() + 1;
$('option:nth-child(' + num + ')', '#kategorier_content1').attr('selected', 'selected');
});
});
其中'#kategorier_content1'是函数的目标,它是在调用函数时发生的变化。我想配对(因为,它们以完全相同的方式改变)更多的目标进入该功能,即(非功能性脚本仅用于展示我想要的要点):
$(document).ready(function () {
$('#kategorierbuttons').click(function(e)
{
var num = $(e.target).index() + 1;
$('option:nth-child(' + num + ')', '#kategorier_content1', '#kategorier_content2').attr('selected', 'selected');
});
});
不幸的是,我对javascript的了解并不是很多,但并没有涵盖这一点,因此我寻求帮助。任何帮助将不胜感激。
这是一个小提琴:http://jsfiddle.net/SEqZG/46/
目标是让两个下拉菜单根据功能表现相同,而不仅仅是前一个。
答案 0 :(得分:1)
您应该为每个click
更改这两个选项。
像这样:
$(document).ready(function () {
$('#kategorierbuttons').click(function(e)
{
var num = $(e.target).index() + 1;
$('option:nth-child(' + num + ')', '#kategorier_content1').attr('selected', 'selected');
$('option:nth-child(' + num + ')', '#kategorier_content2').attr('selected', 'selected'); //One extra line, but what if there are many?
});
});
<强> DEMO 强>
但是,如果您的数组中包含id以您的要求开头的元素会怎样?
然后你必须使用这个选择器选择元素:
element_type[attribute^="value"]
请在此处阅读: Attribute Starts With Selector
然后你可以这样做:
$(document).ready(function () {
$('#kategorierbuttons').click(function(e)
{
var num = $(e.target).index() + 1;
$('select[id^="kategorier_content"]').find('option:nth-child(' + num + ')').attr('selected', 'selected');
});
});
<强> DEMO 强>