cari

Rumah  >  Soal Jawab  >  teks badan

javascript - jquery setiap gelung mendapat lebar div dan memberikannya kepada elemen induk. Kenapa hasilnya salah?

<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>

Asalnya hasilnya sepatutnya begini

Tetapi selepas menanggalkan gaya sebaris, hasilnya hebat.

Mengapa mengalih keluar gaya sebaris? Itu sahaja? ? ? ?

迷茫迷茫2805 hari yang lalu788

membalas semua(7)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:44:40

    Letakkan style标签对放到domjs之前
    你的代码结构如果没有行内样式,会先把.aa按照块级元素处理,宽度为100%
    js处理完成之后才读取style标签对,把.aa处理为行内块级元素 dan pendekkan lebar
    Kod yang disegerakkan mesti diletakkan dengan betul

    balas
    0
  • ringa_lee

    ringa_lee2017-05-19 10:44:40

    w += $("#a1 .aa").width();//Dapatkan lebarnya. Dan tambahkan

    w += $(this).width();

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:44:40

    Letakkan gaya dalam bahagian atas Halaman dimuatkan dari atas ke bawah p ialah elemen peringkat blok .aa{display:inlne-block;} tidak berfungsi di bahagian bawah

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:44:40

    $("#a1 .aa").each(function(){
        w += $("#a1 .aa").width();
        //这里用错了,应该用$(this).width(),不然累加的是第一个的宽度,
        //用w += $(this).width();我这本地测试530px
    })
    

    balas
    0
  • 高洛峰

    高洛峰2017-05-19 10:44:40

    $("#a1 .aa").width();//这样默认取的是第一个.aa的宽度,也就是200,所以最后是600
    第二次你删除行内样式后,得到p占据一行的宽度(因为inline-block还没生效),所以得到三倍的整行宽度

    balas
    0
  • 怪我咯

    怪我咯2017-05-19 10:44:40

    balas
    0
  • 迷茫

    迷茫2017-05-19 10:44:40

    Anda tidak faham maksud sebenar $(selector)
    Pergi dan semak apa yang akan dikembalikan dan anda akan tahu masalahnya

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

    Soalan lain
    Anda perlu faham di mana gaya akan ditambah dan adakah ia akan dimuatkan terlebih dahulu?
    Apakah pelaksanaan skrip?

    balas
    0
  • Batalbalas