我试图使用jQuery获取宽度&元素的高度。现在我有一个函数可以在元素周围展开一个跨度,并从临时span元素中获取大小。尝试使用jQuery获取元素的实际宽度和高度
HTML
<a id="test">click</a><br />
<div id="content" style="display:block">
<div>Hello world</div>
</div>
<h3>Result:</h3>
<div id="result"></div>
JS
$('#test').click (function() {
var size = elementSize ('#content');
$('#result').html (size.width + ' x ' + size.height + ' px');
});
function elementSize (elementId) {
var html_org = $(elementId).html();
var html_calc = '<span>' + html_org + '</span>';
$(elementId).html(html_calc);
var ret = {
width: $(elementId).find('span:first').width(),
height: $(elementId).find('span:first').height(),
};
$(elementId).html(html_org);
return ret;
}
的(不)工作示例:http://jsfiddle.net/KmeaC/1/
得到的 “Hello world” 的实际宽度&高度的唯一方法是删除它的div标签:http://jsfiddle.net/ycxTr/。但那不是我想要的:)
有人吗?
因为我想元素内的HTML的宽度/高度。使用您的解决方案,我可以获得元素本身的大小,而不是其中的内容:http://jsfiddle.net/qJ6BZ/ – Pieter
查看已更新的答案,但当然这将返回与容器相同的尺寸作为DIV将宽度和高度调整为其大小内容除了某些CSS规则应用为填充/边框/等等...如果仍然不能按照您的预期工作,请考虑在此情况下指出您期望的内容的大小 –
是的!谢谢烤,它工作得很好! – Pieter