2
我有以下元素。獲取改變文本的元素的外部寬度
var e=$('<span/>', {"class":'someClass',text:'Hello'});
我希望得到它的外部寬度。看起來我不能僅僅使用e.outerWidth()
,因爲它需要先寫入屏幕。正確?
所以,現在是真正的問題。如果文本是「Goodby」,我希望知道外部寬度,而不是使用文本「Hello」,這將如何實現?
謝謝
我有以下元素。獲取改變文本的元素的外部寬度
var e=$('<span/>', {"class":'someClass',text:'Hello'});
我希望得到它的外部寬度。看起來我不能僅僅使用e.outerWidth()
,因爲它需要先寫入屏幕。正確?
所以,現在是真正的問題。如果文本是「Goodby」,我希望知道外部寬度,而不是使用文本「Hello」,這將如何實現?
謝謝
您可以將元素添加到文檔,但外界視,如left: -10000px
。然後outerWidth()
將工作。
試試這個:
var e = $('<span/>', {"class":'someClass',text:'Hello'}).css({
'position': 'absolute',
'left': '-10000px'
}).appendTo('body');
var outerWidth = e.outerWidth();
e.remove(); // remove the element from the DOM once we've got it's width
是啊,這是我擔心的。謝謝 – user1032531
是的,很遺憾,沒有真正的選擇,因爲元素必須是DOM的一部分才能計算寬度。 –
這種方法的問題是,如果在未來的父級級聯上有任何樣式。認爲最好將其他文本放在同一位置,獲取寬度,然後放入最終文本?或者,也許將樣式複製到外部視口元素(這是如何完成的?)? – user1032531