Поэтому у меня есть несколько ссылок:
<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
?
Это сочетание как @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]);
каждый() будет делать именно это, перебирать каждую ссылку. Вы хотите предупредить, когда нажата конкретная ссылка. Функция click .high_res_link
когда .high_res_link
элемент класса .high_res_link
но не из класса .no_pop
. this
ключевое слово относится к элементу, который вызвал функцию, поэтому он будет отображать соответствующее уведомление в зависимости от того, какой канал связи была нажата.
$('.high_res_link').not('.no_pop').click(function(e){
var href = $(this).attr('href');
href = href+"sizes/o/";
alert(href);
e.preventDefault();
});
Попробуй это:
$('.high_res_link').not('.no_pop').each(function(){
var href = $(this).attr('href');
href = href+"sizes/o/";
alert(href);
});
Вы можете использовать функцию в событии click для каждой ссылки, как показано ниже.
$(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);
});
});
.hasClass
возвращает логическое значение!
Используйте дополнительный массив:
var href = [];
$('.high_res_link :not(.no_pop)').each(function(){
var h = $(this).attr('href') + "sizes/o/";
href.push(h);
});
alert(href[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>
<a>
?