理论上来说,如果我有一个无序项目列表
<ul>
<li><a>Link1</a></li>
<li><a>Link1</a></li>
</ul>
我如何使用 jQuery 执行以下操作?
1) 找到每个单独a
元素的宽度
2) 找到每个单独的 li
元素的宽度
3) 将每个子a
元素的宽度从其父li
元素的宽度中减去
4) 然后将总计添加到每个父 li
元素
这不起作用:
$('ul > li').each(function() {
var liWidth = (this).width();
var aWidth = ('ul > li > a').width();
var subractedWidth = parseFloat(liWidth) - parseFloat(aWidth);
var newWidth = subtractedWidth + parseFloat(liWidth);
$(this).css('width',newWidth);
});
提前致谢!
最佳答案
您忘记使用$
在一些地方,您正在尝试获取 <a>
宽度在特定<li>
内你在,所以你不应该重新查询整个 DOM。这样就可以了:
$('ul > li').each(function() {
var liWidth = parseFloat($(this).width());
var aWidth = parseFloat($(this).find('a').eq(0).width());
$(this).width((liWidth - aWidth) + liWidth);
});
关于jquery - 简单的 jQuery 算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770766/