扩展jquery .each循环

时间:2011-02-08 09:44:25

标签: jquery

我有一个jQuery函数,它找到嵌套在ID为#popupForm的容器DIV中的所有图像,查看SRC属性并将其与一个隐藏输入进行比较,该输入具有由服务器端变量创建的值。如果有匹配则呈现一次,它将在图像的SRC上进行替换,hense:

var thisTheme = $("#hiddenTheme").val();
var defaultTheme = "/midway/firstTheme/"

$('#popupForm img').each(function () {

    var thisSRC = $(this).attr('src');
    if (thisSRC.indexOf(defaultTheme) !== -1) {

        var new_src = $(this).attr('src').replace(defaultTheme, thisTheme);
        $(this).attr('src', new_src);

    }

});

现在这很好但我希望扩展此代码的循环部分(.each部分),这样不仅可以查看容器DIV中的图像,还可以查看所有输入(是的,有些输入具有SRC属性 - 请不要问为什么)

我在想添加像这样的数组

var arrValues = ["#popupForm img", "#popupForm input"];

然后查找每个的选择器部分以包含数组,类似这样的

$(arrValues).each(function () {

有没有人知道我修改代码的最佳方法,到目前为止我尝试过的方法都没有用!

由于

3 个答案:

答案 0 :(得分:3)

只需在选择器中使用逗号(类似于CSS):

$('#popupForm img, #popupForm input').each(function () { ... });

答案 1 :(得分:1)

您是否尝试将此行更改为以下内容:

$('#popupForm img, #popupForm input').each(function () {...

希望它有效。

答案 2 :(得分:1)

这是一种扩展包装器的方法:

$('#popupForm img').add('#popupForm input[src!=""]')...

[src!=""]确保只添加那些具有src属性的输入。

希望这有帮助!