javascript函数的目标数组

时间:2014-07-16 14:13:47

标签: javascript jquery arrays

我在想;如何向此脚本添加目标数组?

$(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/

目标是让两个下拉菜单根据功能表现相同,而不仅仅是前一个。

1 个答案:

答案 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