предыдущий первый img src - jQuery - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь получить источник изображения перед ссылкой, по которой я нажимаю:

<ul id="grid">
        <li><a href="prod-det.php" class="tip" rel="product-tip.php"><img src="../upload/mainmenu-articolo-ico.jpg" width="110" height="115"><p>GSE29KGYCSS / GSE29KGYCWW</p></a>
        <div class="options">
            <a href="#briciole" class="opt-compare off">Compare</a>
            <a href="#briciole" class="opt-wish off">Wishlist</a>
        </div></li>

и напишите этот путь:

$('.options a').click(function() {
 $("#compare .myge-grid").append(closest('img').attr('src'));

но мне не удалось получить img src. Кто-то может, пожалуйста, указать мне правильное направление? ТКС заранее

изменить: больше кода здесь http://jsfiddle.net/X2NBn/1/

Ответы [ 2 ]

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

Обновление:
В соответствии с вашей структурой документа, это то, что вы ищете:

$("img", $(this).parents('li:first')).attr("src");

Примечание: attr("src") возвращает src , как определено в источнике HTML ('../upload.png'). Если вам нужен полный путь, используйте .prop("src").

<ч /> Старый ответ
Вы должны определить объект JQuery, для которого вы хотите использовать метод .closest().

В настоящее время вы используете не метод jQuery .closest, а функцию (возможно, неопределенную) closest().

Это должно работать как положено, после добавления $(this):

$('.options a').click(function() {
    $("#compare .myge-grid").append($(this).closest('img').attr('src'));

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

closest не волшебство. Это не значит «визуально ближе». Это означает «ближайший предок». Вместо того, чтобы искать элемент списка каждый раз при щелчке элемента, как в ответе Роба В., вам лучше перебирать элементы списка и привязывать обработчик щелчка к каждому из них по очереди, например:

$('#grid li').each(function() {
    var item = $(this);
    item.find('.options a').click(function() {
        $("#compare .myge-grid").append(item.find('img').attr('src'));
    });
});
...