使用jquery .each()获取属性并使用as样式

Jon*_*sen 0 javascript each jquery

我想这是一个非常简单的问题.

我想给我的li-tags一个与其里面的图像相匹配的宽度.到目前为止,我正在为每个人获得正确的图像属性.

$("#slider1 li img").each(function(){
 var imageWidth = $(this).width();
 var imageHeight = $(this).height();    
 $(this).attr('width', imageWidth);
 $(this).attr('height', imageHeight);
});
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚我如何将imageWidth转移到我的li-tag.我尝试过:

$("#slider1 li").css("width", imageWidth);
Run Code Online (Sandbox Code Playgroud)

但这只是为所有li提供相同的宽度.

谢谢你的帮忙:)

编辑:我的标记:

<ul id="slider1"> 
<li><img src="tester.jpg"/></li> 
<li><img src="tester2.jpg"/></li> 
<li><img src="tester3.jpg"/></li> 
<li><img src="tester4.jpg"/></li> 
<li><img src="tester.jpg"/></li> 
<li><img src="tester2.jpg"/></li>
</ul> 
Run Code Online (Sandbox Code Playgroud)

day*_*ker 6

您可以直接调用li包含该img元素的父级,如下所示:

$(this).parent('li').css('width',imageWidth);
Run Code Online (Sandbox Code Playgroud)

注意:这只有在img深度只有一层的情况下才有效li.否则,请.closest('li')改用.parent将仅遍历一个级别,其中closest将继续遍历DOM树,直到找到指定的元素.

  • 使用最接近:如果更改标记,则更安全 (2认同)