我有一個DOM appendChild()
方法的麻煩。我創建一個節點,然後將此節點追加到父節點,然後我想讀取node.clientWidth
屬性,但它返回0,因爲該節點尚未繪製。這裏是我的代碼:javascript:執行appendChild(節點),然後嘗試讀取node.clientWidth失敗
var node = document.createElement('div');
node.textContent = 'some text';
parent.appendChild(node);
alert(node.clientWidth); //shows 0
我試過的節點上onload
和onshow
事件,但他們甚至沒有觸發。我可以使用setTimeout
,它可以工作,但這不是一個完美的解決方案。有沒有很好的解決方案 這個問題?
對不起,我的英語不好,非常感謝你!
UPDATE:好的,我看到我的問題。父母當時沒有附加到DOM。很抱歉,並感謝您的時間
的onload必須是有益的,但DOM準備的事件是什麼,你居然需要嘗試,或者在父元素 – dmi3y
後面嵌入代碼我很難重新創建這個。你使用的瀏覽器是什麼,這個腳本運行在什麼上下文(head,body,onload)?如果我把它放在頭部,它會因TypeError失敗,因爲document.body還不存在。如果我把它放在體內,它會按預期工作。 –
好吧,我看到我的問題。父母當時沒有附加到DOM。對不起,感謝您的時間 – falouu