получить идентификатор "img" с помощью jquery - PullRequest
1 голос
/ 19 января 2012

У меня есть этот код:

<div id="popupContactIMG_4179" class="xxxx">
    <a id="popupContactCloseIMG_4179">x</a>
    <img alt="" src="../IMG_4179.jpg" id="id1">
</div>

Я хочу получить img идентификатор, который находится внутри <a> при щелчке мышью по <a>:

$("a[id^=popupContactClose]").click(function(){ 
    var qwerty = $(this+" img").attr("id");
}

Любая помощь?

Ответы [ 4 ]

7 голосов
/ 19 января 2012

Самый простой способ - использовать next (поскольку img - это следующий брат или сестра):

$("a[id^=popupContactClose]").click(function(){ 
    var qwerty = $(this).next().attr("id");
});

В качестве альтернативы вы пытаетесь это сделатьсделать, это передать родительский элемент this в качестве контекста jQuery:

$("a[id^=popupContactClose]").click(function(){ 
    var qwerty = $("img", $(this).parent()).attr("id");
});
2 голосов
/ 19 января 2012

Примерно так должно работать:

$("a[id^=popupContactClose]").click(function(){ 
 var qwerty = $(this).siblings("img").first().attr("id");
}
1 голос
/ 19 января 2012

Ваш тег <img> не имеет идентификатора, но если он есть, вы можете использовать это:

$("a[id^=popupContactClose]").click(function(){ 
   var qwerty = this.nextSibling.id;
});

, хотя это будет работать, только если вы точно знаете, что тег <img> является следующим элементом после тега <a>.

Если вы не можете этого гарантировать, используйте jQuery:

$("a[id^=popupContactClose]").click(function(){ 
   var qwerty = $(this).next('img').attr('id');
});
0 голосов
/ 19 января 2012

Попробуйте:

$("a[id^=popupContactClose]").click(function(){ 
    var qwerty = $("img", $(this).parent()).attr("id");
}    

Ваш вопрос подразумевает, что img должно быть внутри элемента a - но это не так, это опечатка?

Кроме того, img не имеет атрибута id - это еще одна опечатка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...