JQuery селекторы, чтобы получить путь к изображению - PullRequest
1 голос
/ 09 октября 2011

когда пользователь нажимает на класс click_1, я хочу получить путь показанного изображения.Обратите внимание, что click_1 происходит в двух контекстах.

<a href="#" class='click_1' ><img src="assets/img/shoe05.png" /></a>
<h4><a href="#" class='click_1' >title link 2</a></h4></li>


    $('.click_1').click(function() {            
        var fullPath = $(this).children("img:first").attr('src');
        if (typeof fullPath === "undefined"){
                        // this one does not work...
            var fullPath = $(this).prev("img").children("img:first").attr('src');
            console.log(fullPath);
        }
    }   

Ответы [ 3 ]

1 голос
/ 09 октября 2011

Почему бы не обернуть оба в один тег <a />? Теперь это действительно с HTML5.

<a href="#" class='click_1'>
    <img src="assets/img/shoe05.png" />
    <h4>title link 2</h4>
</a>
$('.click_1').click(function() {            
    var src = $(this).children('img').first().attr('src');
    console.log(src);
});
0 голосов
/ 09 октября 2011

Предполагая, что класс click_1 уникален для этого раздела связанного кода, вы можете использовать это:

$('.click_1').click(function() {            

    var element = $(this).find('img').first() || $('.click_1 img').first();
    var fullPath = element.attr('src');

    console.log(fullPath);
});

Однако что-то подсказывает мне, что было бы лучше настроить функцию, которая принимает ваш классимя в качестве аргумента, чтобы вы могли выполнить его для нескольких элементов click_X на вашей странице.(нужна дополнительная информация)

0 голосов
/ 09 октября 2011

Назначьте правильный элемент переменной, проверьте, существует ли он, а затем вытяните 'src'. Примерно так:

$('.click_1').click(function() {            
    var imgElement = $(this).find("img").first();
    if (imgElement.length){
        var fullPath = imgElement.attr('src');
        console.log(fullPath);
    }
} 
...