【问题标题】:extending the jquery .each loop扩展 jquery .each 循环
【发布时间】:2011-02-08 17:49:26
【问题描述】:

我有一个 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 () {

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

谢谢

【问题讨论】:

  • 嗨,迈克,我想我在这次谈话中为时已晚,但你得到答案了吗?

标签: jquery


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

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

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

      希望它有效。

      【讨论】:

      • 我似乎收到错误“thisSRC is undefined”,我认为这是因为并非所有输入都具有 SRC 属性!
      • 这是因为输入通常没有来源。您可以将其更改为:$('#popupForm img, #popupForm input[src!=""]').each(function () {
      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2013-08-12
      • 2011-06-07
      • 1970-01-01
      相关资源
      最近更新 更多