jQuery .each()over .wp-caption
当存在标题时,WordPress会向.wp-caption
容器添加额外的10px。 我正在尝试使用jQuery删除额外的10px。 由于这个问题的答案,我已经能够做到这一点 ,但我意识到b / c有时会在post中有多个图像,我需要使用某些东西来实现.each()
的迭代效果。 下面的代码适用于第一张图像,但后来错误地将第一张图像应用于第二张图像的容器。 如何更正.each()
才能正常工作?
jQuery().ready(function() { jQuery(".wp-caption").each(function(n) { var width = jQuery(".wp-caption img").width(); jQuery(".wp-caption").width(width); }); });
示例w / javascript on
示例w / javascript off
更新:以下最简化的解决方案:
jQuery().ready(function( $ ) { $(".wp-caption").width(function() { return $('img', this).width(); }); });
或者用$
jQuery
替换$
以防止冲突:
jQuery().ready(function( jQuery ) { jQuery(".wp-caption").width(function() { return jQuery('img', this).width(); }); });
两者都有效! =)
this
是对.each()
当前元素的引用。
jQuery().ready(function( $ ) { $(".wp-caption").each(function(n) { var width = $(this).find("img").width(); $(this).width(width); }); });
…因此,您可以使用find()
[docs]方法获取后代及其
width()
。
您也可以将函数直接传递给width()
,它将为您迭代。
jQuery().ready(function( $ ) { $(".wp-caption").width(function(i,val) { return $(this).find("img").width(); }); });
…这里,函数的返回值将是设置为当前.wp-caption
的宽度。
编辑:更新以使用.ready()
处理程序中的公共$
引用。