javascript - jquery each循環得到div的寬度,再賦值給父元素。結果為什麼不對?
迷茫
迷茫 2017-05-19 10:42:40
0
7
711
<script src="jquery.js"></script>
<p id="a1">
    <p class="aa" style="width: 200px;">423423423423423423423</p>
    <p class="aa" style="width: 180px;">42342342342342342</p>
    <p class="aa" style="width: 150px;">123123</p>
</p>
<script>
var w = 0
$("#a1 .aa").each(function(){
    w += $("#a1 .aa").width();//获取宽度。并累加
})
$("#a1").width(w)
</script>
<style>
    .aa{
        display: inline-block;
    }
</style>

本來結果應該是這樣的

#但是把行內樣式去掉之後,結果就好大了。

#為什麼把行內樣式去掉。就這樣了呢? ? ? ?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(7)
我想大声告诉你

style标签对放到domjs之前
你的代码结构如果没有行内样式,会先把.aa按照块级元素处理,宽度为100%
js处理完成之后才读取style标签对,把.aa处理为行内块级元素,寬度縮短
同步的程式碼要把位置擺正確

左手右手慢动作

w += $("#a1 .aa").width();//取得寬度。並累加

w += $(this).width();
淡淡烟草味

把style裡的樣式放在最上邊,頁面載入是從上往下載入的,p是塊級元素,.aa{display:inlne-block;}在最下邊並沒有起作用

伊谢尔伦

雷雷

小葫芦

雷雷

迷茫

你沒理解$(selector)的真正意思
去查查會回傳什麼就知道問題了

$("#a1 .aa").each(function(){
    w += $("#a1 .aa").width(); // 这一句会返回什么?
})

另一個問題
要明白 樣式 到哪裡才會被加上,會被提前加載嗎?
而 script 的執行是怎樣?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板