我正在尝试在我的<img>
个标记中选择<a>
个标记customurl
。
我知道我可以在一个<a>
上执行此操作:
$(".customurl img");
但我正试图弄清.each
中的语法是这样的:
$(".customurl").each(function(i)
{
var t = $(this);
// select child <img> within t
// (for this iteration)
});
这是一个HTML代码段,需要进一步说明:
<a class="customurl"><img src="blah" /> Some text</a>
<a class="customurl"><img src="blah" /> Some text</a>
<a class="customurl"><img src="blah" /> Some text</a>
答案 0 :(得分:6)
使用children()
[docs]方法。
$(".customurl").each(function(i)
{
var t = $(this).children('img');
});
或者如果您要在图像之前确保没有文本节点(包括空格):
$(".customurl").each(function(i)
{
var t = $(this.firstChild);
});
...但是如果你只是想运行jQuery方法,他们会为你迭代:
$(".customurl > img").attr(/*...*/);
这会将attr()
[docs]方法应用于结果中的每个元素。
此外,像.attr()
这样的方法会接受回调作为参数。
$(".customurl > img").attr('src', function(i,src) {
// give each <img> a calculated value for its src
return 'some_new_value_' + i;
});
答案 1 :(得分:5)
使用.find('')
$(this).find('img')
或
t.find('img')
或者这也可以使用.each()的第二个参数:
$(".customurl").each(function(i, elem)
{
$(elem).find('img')
如果您只想要第一张图片(假设您有多张图片):
$(this).find('img:first')
或
$(this).find('img:first-child')