Есть блоки:
<div class="gallery-photos-block">
<div class="gallery-photos-block-active"></div>
<img src="/img/gallery/2.jpg" class="alignnone">
</div>
и есть код:
$(".gallery-photos-block").click(function(){
var img = $(this);
var src = img.attr('src');
где при клике должен происходить поиск src картинки.
var img = $(this); ищет в самом блоке (то есть после тега класс).
Как изменить код так, чтобы атрибут src искался в теге img внутри блока, на который кликнули, а не в самом блоке?
Решение:
$(".gallery-photos-block").on('click', function () {
var img = $(this).find('img');
var src = img.attr('src');
});
Обычно используют find:
$(".gallery-photos-block").click(function(){
var img = $(this).find('img'); // $('img', this)
var src = img.attr('src');
console.log(src);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-photos-block">
clickable text
<div class="gallery-photos-block-active"></div>
<img src="/img/gallery/2.jpg" class="alignnone">
</div>
Можно через children:
$(".gallery-photos-block").click(function(){
var img = $(this).children('img');
var src = img.attr('src');
console.log(src);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-photos-block">
clickable text
<div class="gallery-photos-block-active"></div>
<img src="/img/gallery/2.jpg" class="alignnone">
</div>
Вы хотите получить src картинки? Ну тогда получайте src картинки, а не пытайтесь найти src у div.
$(".gallery-photos-block").click(function(){
var src = $(this).find.('.alignnone').attr('.src');
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей