控制.each()的使用

时间:2014-01-10 17:37:46

标签: javascript jquery

所以我有几个链接:

<a class="high_res_link" href="http://www.flickr.com/photos/websterk3/6637215599/">
<a class="high_res_link" href="http://www.flickr.com/photos/44108990@N08/4416648216/">
<a class="high_res_link no_pop" href="http://oix.tumblr.com/image/72876442290">
…

我希望能够单独提醒每个href。而不是目前他们都一个接一个地提醒。例如,转到alert(href[1]),它只会提醒:http://www.flickr.com/photos/websterk3/6637215599/sizes/o/ (第一个链接)

$('.high_res_link').each(function(){
var href = $(this).attr('href');
href = href+"sizes/o/";
alert(href);
});

我也希望阻止类no_pop的任何内容,因为它链接到tumblr而不是flickr。您是否可以为变量href制定规则,以便它不能包含字符串tumblr

6 个答案:

答案 0 :(得分:0)

每个()都会这样做,遍历每个链接。您希望在单击特定链接时发出警报。单击类.high_res_link但不是类.no_pop的元素时,将调用click函数。 this关键字是指触发该功能的元素,因此它会根据点击的链接显示相应的警报。

   $('.high_res_link').not('.no_pop').click(function(e){
       var href = $(this).attr('href');
       href = href+"sizes/o/";
       alert(href);
       e.preventDefault();
   });

FIDDLE

答案 1 :(得分:0)

你能试试吗,

$(function(){
 $('.high_res_link').not('.no_pop').click(function(e){
   var href = $(this).attr('href');
   href = href+"sizes/o/";
   alert(href);
   e.preventDefault();
 });
});

HTML:

 <a class="high_res_link" href="http://www.flickr.com/photos/websterk3/6637215599/">
 link1</a>
 <a class="high_res_link" href="http://www.flickr.com/photos/44108990@N08/4416648216/">
  link2</a>
 <a class="high_res_link no_pop" href="http://oix.tumblr.com/image/72876442290">
 link3</a>

演示: http://jsfiddle.net/3Vycs/1/

答案 2 :(得分:0)

试试这个:

$('.high_res_link').not('.no_pop').each(function(){
var href = $(this).attr('href');
href = href+"sizes/o/";
alert(href);
});

<强> Demo

答案 3 :(得分:0)

使用其他阵列:

var href = [];
$('.high_res_link :not(.no_pop)').each(function(){
  var h = $(this).attr('href') + "sizes/o/";
  href.push(h);
});

alert(href[0]);

答案 4 :(得分:0)

您可以在每个链接的点击事件中使用功能,如下所示

$(function(){
 $('.high_res_link').click(function(){
   var href = $(this).attr('href');
   href = href+"sizes/o/";
   alert(href);
 });
});

如果您想提醒特定链接。例如,如果您想提醒第二个链接,请使用以下编码

 $(function(){
     $('.high_res_link').eq(1).click(function(){
       var href = $(this).attr('href');
       href = href+"sizes/o/";
       alert(href);
     });
    });

答案 5 :(得分:0)

这是@still_learning和@Alex Shilman的答案的混合

 var href = [];
$('.high_res_link').not('.no_pop').each(function(){
  var h = $(this).attr('href') + "sizes/o/";
  href.push(h);
});

alert(href[1]);