JQuery每个函数返回重复的文本

时间:2012-06-26 18:41:18

标签: jquery jquery-ui

附加的jQuery非常接近工作。它返回(或附加)文本两次。

我正在迭代一个无序列表并将一个查询字符串参数附加到hrefs。

?InitialTabId=Ribbon.Document正在追加两次,如下所示:

http://www.google.com?InitialTabId=Ribbon.Document?InitialTabId=Ribbon.Document

代码:

$(document).ready(function() {          
//foreach item in the quick launch, add a parameter to ensure the Ribbon is set to the Document tab
    $('#zz18_V4QuickLaunchMenu ul li').each(function() {    
        $(this).find('a').attr('href', function (i, val) {          
            return val + '?InitialTabId=Ribbon.Document';
        });
    });
});

有没有人有任何想法如何让文字只附加一次?

2 个答案:

答案 0 :(得分:2)

无需each()

$('#zz18_V4QuickLaunchMenu ul li a').attr('href', function (i, val) {          
  return val + '?InitialTabId=Ribbon.Document';
});

使用此代码不应该将字符串附加两次。 (FWIW,也不应该在代码中附加两次字符串。)

答案 1 :(得分:0)

必须运行两次,因为您选择了两个<li>元素。 .each()是迭代的,并且运行两次,每个元素一次。