基本上,我有一个这样的菜单:
<a class="tab-feed-filter-switch active bound" href="sample.com/ALL" data-target="#filter-fb">FACEBOOK</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/fb" data-target="#filter-all">All</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/ig" data-target="#filter-ig">ig</a>
我希望附加"?startDate=20160121&endDate=20160212"
:
$("#appendHerf").click(function(){
var href = $('a.tab-feed-filter-switch').attr('href') + '?startDate=20160121&endDate=20160212';
$('a.tab-feed-filter-switch').attr('href', href);
});
上述方法的结果不正确:
<a class="tab-feed-filter-switch active bound" href="sample.com/ALLl&?startDate=20160121&endDate=20160212" data-target="#filter-fb">FACEBOOK</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/ALL&?startDate=20160121&endDate=20160212" data-target="#filter-all">All</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/ALL&?startDate=20160121&endDate=20160212 data-target="#filter-ig">ig</a>
我的例外情况如下:
<a class="tab-feed-filter-switch active bound" href="sample.com/ALL&?startDate=20160121&endDate=20160212" data-target="#filter-fb">FACEBOOK</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/FB&?startDate=20160121&endDate=20160212" data-target="#filter-all">All</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/ig&?startDate=20160121&endDate=20160212 data-target="#filter-ig">ig</a>
上面的方法在我的其他程序中运行正常,但因为插件为所有程序生成相同的类,它将所有的herf替换为单个重复的herf,我无法在html中更改它。
我正在考虑获取 date-target元素并添加新类来控制它,但我不确定这是否可行并且可能还有更好的替代解决方法问题。
这是我的最后一个问题,但它似乎无法解决我的问题:Append new path in all the a href URL
只有一个按钮,当我点击时,在我们得到的每个herf中附加startDate&amp; endDate。所以结果应该是 / fb / startDate&amp; endDate,/ All / startDate&amp; endDate ,但现在它就像当我点击按钮每个href替换为/ All / startDate&amp; ;结束日期即可。
答案 0 :(得分:1)
啊,我看到了问题。问题是:
var href = $('a.tab-feed-filter-switch').attr('href') + '?startDate=20160121&endDate=20160212';
$('a.tab-feed-filter-switch').attr('href', href);
...为所有锚标记设置相同的href。你需要做的是使用jQuery提供的each()函数用它的相对href单独更新每个锚标记。用以下内容替换您的点击功能:
$("#appendHerf").click(function(){
$('a.tab-feed-filter-switch').each(function(){
var href = $(this).attr('href') + '?startDate=20160121&endDate=20160212';
$(this).attr('href', href);
});
});
答案 1 :(得分:1)
你说添加类取决于数据目标。但是你想要使用的地方 它?
<强> HTML 强>
let months = ["Feb", "Feb", "Mar", "Mar", "Mar", "Mar", "Mar"]
var workingMonth = ""
let filteredMonths = months.map { month -> String in
let result = month != workingMonth ? month : ""
if month != workingMonth {
workingMonth = month // There is a new month, so update the working month.
}
return result
}
print(filteredMonths)
<强>的jQuery 强>
<a class="tab-feed-filter-switch active bound" href="sample.com/ALL" data-target="#filter-fb">FACEBOOK</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/fb" data-target="#filter-all">All</a>
<a class="tab-feed-filter-switch active bound" href="sample.com/ig" data-target="#filter-ig">ig</a>
每个函数迭代所有匹配的标记并使用$("#appendHerf").click(function(){
$('a.tab-feed-filter-switch').each(function(){
if($(this).attr('href').split("&")[1] == null){
newHref = $(this).attr('href') + '?startDate=20160121&endDate=20160212';
$(this).attr('href', newHref);
}
});
});
属性,它的意思是只需要更改的当前标记。 在你的情况下,你在这里犯了错误。
<强>输出:强>
this