在更改语言时更改div的所有元素(html)?

时间:2013-04-01 14:35:36

标签: javascript jquery

我的页面上有一个下拉菜单,其中包含语言选择器选项。选择语言我希望我的标签和按钮html根据语言改变? 我的代码

var arr = [];
    //  gets all the ids starting with comp_
    $('div[id^="comp_"]').each(function(){
        arr.push(this.id);
        labels = $(this).find('label');
        buttons = $(this).find('button');

        //get all labels inside the current div
        $(labels,buttons).each(function(){
            $(this).html("");
        });

    });
    console.log(arr);
},

* 问题* 它只更改标签元素引用而不是按钮引用。我在多个元素引用上运行函数?

如果我这样做,它可以工作,但我不想再次为不同的引用重复相同的代码

    var arr = [];
    //  gets all the ids starting with comp_
    $('div[id^="comp_"]').each(function(){
        arr.push(this.id);
        labels = $(this).find('label');
        buttons = $(this).find('button');

        //get all labels inside the current div
        $(labels).each(function(){
            $(this).html("");
        });

        $(buttons).each(function(){
            $(this).html("");
        });

    });
    console.log(arr);
},

1 个答案:

答案 0 :(得分:2)

是:

    labels.add(buttons).each(function(){
        $(this).html("");
    });

或者只是:

    labels.add(buttons).html('');

短一个字符:

    labels.add(buttons).empty();

.add() jQuery方法用于向现有jQuery集合添加元素。这些示例使用.add()来组合“标签”和“按钮”jQuery对象中的元素。如果你正在为每个元素做一些不变的事情,那么后两个是表明你不需要.each()。大多数jQuery函数本质上都在集合的每个元素上运行。

完全不同的简化方法:

    var labelsAndButtons = $(this).find('label, button');
    labelsAndButtons.empty();

选择器字符串中的,类似于“或”。该示例查找标记名称为“label”“button”的所有元素。