我得到了一个链接到画廊图片的div,这些图片是由脚本生成的。有-let说x数量的链接+ 20,这都是由脚本生成的。所以每个链接都有一个#和数字。比如www.example.com/#1。例如,在一个图库中,我可以有5张图片,这些图片会有#1 #2 #3等,而在这种情况下,生成的20张图片的编号总是从#6 #7到26#。
所以我的问题是如何用jQuery找到最后20个url并从中删除#。
阿雷克
发布于 2011-07-29 22:12:28
var start = $("div a").length - 21;
start = start < 0 ? 0 : start;
$("div a:gt(" + start + ")[href^='#']").each(function() {
var $a = $(this);
$a.attr("href", $a.attr("href").replace("#", ""));
});工作示例:http://jsfiddle.net/958ea/2/
解释了
var start = $("div a").length - 21;会将start设置为a标签总数减去21。20 +1,因为length是总计数,但我们需要从0开始的索引。
因此,如果存在500锚标记,start将等于479;
如果没有20个a标签,start = start < 0 ? 0 : start;会将start重置为0。对于这个示例,这可能不是必需的,但这是一个很好的检查,这样事情就不会崩溃。
然后,我们使用这个选择器遍历索引标记:"div a:gt(" + start + ")[href^='#']",它将选择索引大于start的值的所有a标记(在我的示例中是start= 10,即<a href="#11">)。接下来,它进一步过滤以#开头的a标记。这也可能是不必要的,但这是另一件值得检查的事情。
最后,将href中的#字符替换为空字符串""
发布于 2011-07-29 22:06:44
$("div > a").each(function() {
var linkURL = $(this).attr("href");
var newURL = linkURL.replace("#", "");
//Do something with newURL here.
//eg. to assign it the new url:
//$(this).attr("href", newURL);
});这将针对每个带有锚标记的div,所以如果您有多个div,那么给div一个id,并像这样将它作为目标。
$("#theIdYouChose > a").each(function() {
});发布于 2011-07-29 22:09:28
看看jQuery nth-child吧。从阅读上看,它应该是这样的
$('body > a:nth-child(n+20)').each(function() {
var _href = $(this).attr("href").replace("#","");
$(this).attr("href", _href);
});编辑:不要紧...这将选择第20个链接之后的所有链接。不是你想要的。
https://stackoverflow.com/questions/6874302
复制相似问题