我正在尝试添加一个if语句,用于检查图像是否宽于199px,以及是否还没有< a>父元素。 这有效:
$('div.post_body').each(function() {
$(this).find('img').each(function () {
var img = $(this);
if (img.is('a') !== true) {
img.wrap($('<a/>').attr('href', img.attr('src')).addClass('lightview limg'));
}
});
});
此作品
$('div.post_body').each(function() {
$(this).find('img').each(function () {
var img = $(this);
if (img.width() > 199) {
img.wrap($('<a/>').attr('href', img.attr('src')).addClass('lightview limg'));
}
});
});
这不起作用:
$('div.post_body').each(function() {
$(this).find('img').each(function () {
var img = $(this);
if ((img.width() > 199) && (img.is('a') !== true)) {
img.wrap($('<a/>').attr('href', img.attr('src')).addClass('lightview limg'));
}
});
});
有人可以帮忙吗?
答案 0 :(得分:3)
因此,您希望div
内的所有图片都超出某个维度吗?
$("div.post_body > img").wrap(function(){
if ( $(this).width() > 199 ) {
return $("<a>").attr("href", this.src).addClass("lightview limg");
}
});
答案 1 :(得分:1)
通过查看代码中存在的逻辑,您似乎正在尝试测试img
是否包含<a></a>
,如果没有,请将其包装。
如果是这样,您可以将代码优化为:
$('div.post_body img').each(function() {
var $img = $(this);
if (($img.width() > 199) && ($img.parent('a').length)) {
$img
.wrap($('<a/>').attr('href', $img.attr('src')).addClass('lightview limg'));
}
});
答案 2 :(得分:1)
您可以检查其父元素是否为锚元素:
$('div.post_body img').each(function() {
var img = $(this);
if ((img.width() > 199) && (img.parent().get(0).tagName != 'a')) {
img.wrap($('<a/>').attr('href', img.attr('src')).addClass('lightview limg'));
}
});