Проверено, и Работы:
Демо Online: http://jsbin.com/uyuri3
<p id="scope">
<img src="foo.jpg" />
</p>
- с -
$(function(){
var scope = $("#scope");
alert( $(scope).children("img[src$='foo.jpg']").attr("src") );
});
- также работает с вашим оригинальным синтаксисом -
var img = $("> img[src$='foo.jpg']", scope);
Интересная ошибка
Мы знаем, что наше src
значение равно foo.jpg
, но следующее не выполняется:
$("img[src='foo.jpg']");
Поэтому мне было любопытно, будет ли интерпретация src
в jQuery равной строковому литеральному источнику, который я предоставил в HTML:
$("img", scope).attr("src") === "foo.jpg"; // true
Это делает всю ситуацию очень странной. jQuery утверждает, что значение src
равно NOT , равному «foo.jpg», когда вы передаете его как часть селектора, но оно IS равно строковому литералу, когда вы сравнить со звонка на attr()
.
В конце концов, $=
необходимо, чтобы jQuery согласился с тем, что "foo.jpg" равно "foo.jpg". Это, конечно, ошибка, но не непреодолимая.