0

我想在单击按钮时更新菜单项的 href,这是我的代码

function refreshReportMenu(){
    var ts = '&ts=' + new Date().getTime().string(16);
    $('ul.nav a.reps').each(function(){
       var href = $(this).attr('href');
        $(this).attr('href', href + ts);
    });
}

但这里的问题是它总是将 ts 附加到 href,如果它已经在 href 中,我想更新 ts 值。

4

3 回答 3

0
 $('ul.nav a.reps').each(function(){
       var href = $(this).attr('href');
        $(this).attr('href', href + ts);
    });

认为你在这里出错了,$this而不是$(this)

于 2013-03-01T11:40:50.843 回答
0

尝试.indexOf

alert('Index: ' + $(this).attr('href').indexOf('ts'));

查看

if($(this).attr('href').indexOf('ts') > 0)
{
    $(this).attr('href', href + ts);
}
于 2013-03-01T11:43:17.763 回答
0

好吧..你也许可以试试

var reg = /(^|&)ts=(.*?)(&|$)/, ts = 'ts=' + new Date().getTime().toString(16);
$('ul.nav a.reps').each(function(){
   var href = $(this).attr('href');
   if ( href.match(reg) ) {
       href = href.replace(reg,"$1+"+ts+"$3");
   } else {
       href += "&" + ts;
   }
   $(this).attr('href', href);
});

它应该工作:)

于 2013-03-01T11:53:38.397 回答