ฉันจะเปลี่ยน CSS ไม่แสดงคุณสมบัติหรือบล็อกโดยใช้ jQuery ได้อย่างไร


คำตอบ:


923

วิธีที่ถูกต้องในการทำเช่นนี้คือการใช้showและhide:

$('#id').hide();
$('#id').show();

วิธีอื่นคือการใช้วิธี jQuery css :

$("#id").css("display", "none");
$("#id").css("display", "block");

@GenericTypeTea: #idใช้สำหรับรหัสสิ่งที่เกี่ยวกับถ้าผมต้องการที่จะใช้class?
AabinGunz

26
$(".class").css("display", "none");
djdd87

8
ฉันลองใช้$('#id').css('display', 'none');แต่ไม่ได้ผล อย่างไรก็ตามการใช้การ$('#id').css('color', 'red');ทำงาน ฉันไม่แน่ใจว่าทำไม ไม่มีใครมีความคิดใด ๆ ขอบคุณล่วงหน้า.
David

5
นอกจากนี้ยังควรรวมความแตกต่างระหว่าง $ ('# id'). hide () และ $ ("# id") css ("display", "none") ในคำตอบนี้
ManirajSS

1
มีความแตกต่างระหว่างสองอย่างที่ฟังก์ชั่นเดิมซ่อนเฉพาะข้อความและไม่เพิ่มพื้นที่ว่างที่ถูกครอบครองโดยองค์ประกอบในขณะที่หลังซ่อนเนื้อหาและเพิ่มพื้นที่ว่างที่ถูกครอบครองโดยองค์ประกอบ cocern
Dila Gurung

110

มีหลายวิธีในการทำสิ่งนี้ให้สำเร็จโดยแต่ละจุดประสงค์


1 .) ในการใช้อินไลน์ในขณะที่เพียงแค่กำหนดองค์ประกอบรายการสิ่งที่ต้องทำ

$('#ele_id').css('display', 'block').animate(....
$('#ele_id').css('display', 'none').animate(....

2 ) เพื่อใช้ในขณะตั้งค่าคุณสมบัติ CSS หลายรายการ

$('#ele_id').css({
    display: 'none'
    height: 100px,
    width: 100px
});
$('#ele_id').css({
    display: 'block'
    height: 100px,
    width: 100px
});

3 ) การเรียกใช้คำสั่งแบบไดนามิก

$('#ele_id').show();
$('#ele_id').hide();

4. ) เพื่อสลับระหว่างบล็อกและไม่มีถ้าเป็น div

  • องค์ประกอบบางอย่างจะแสดงเป็นแบบอินไลน์อินไลน์บล็อกหรือตารางขึ้นอยู่กับตากรัม N AME

$ ( '# ele_id') สลับ ().


27

หากการแสดง div เป็นบล็อกโดยค่าเริ่มต้นคุณสามารถใช้.show()และ.hide()เพื่อง่ายกว่าใน.toggle()การสลับระหว่างการมองเห็น


จริงมันจะตั้งค่าการแสดงผลเป็นอะไรก็ตามในตอนแรกซึ่งอาจเป็นบล็อกหรือสิ่งที่แตกต่าง
danielgwood




2
(function($){
    $.fn.displayChange = function(fn){
        $this = $(this);
        var state = {};
        state.old = $this.css('display');
        var intervalID = setInterval(function(){
            if( $this.css('display') != state.old ){
                state.change = $this.css('display');
                fn(state);
                state.old = $this.css('display');
            }
        }, 100);        
    }

    $(function(){
        var tag = $('#content');
        tag.displayChange(function(obj){
            console.log(obj);
        });  
    })   
})(jQuery);

คำอธิบายจะอยู่ในลำดับ
Peter Mortensen

2

ในกรณีที่คุณต้องการซ่อนและแสดงองค์ประกอบขึ้นอยู่กับว่าสามารถมองเห็นได้หรือไม่คุณสามารถใช้สลับแทน.hide()และ.show()

$('elem').toggle();

1

.hide () ไม่ทำงานใน Chrome สำหรับฉัน

วิธีนี้ใช้สำหรับการซ่อน:

var pctDOM = jQuery("#vr-preview-progress-content")[0];
pctDOM.hidden = true;

0

ในกรณีของฉันฉันกำลังแสดงองค์ประกอบ / ซ่อนของฟอร์มตามว่าองค์ประกอบอินพุตว่างเปล่าหรือไม่ดังนั้นเมื่อซ่อนองค์ประกอบองค์ประกอบต่อไปนี้องค์ประกอบที่ซ่อนอยู่ถูกจัดตำแหน่งใหม่โดยใช้พื้นที่ของมันจำเป็นต้องลอย: ซ้าย ขององค์ประกอบขององค์ประกอบดังกล่าว แม้กระทั่งการใช้ปลั๊กอินตาม แต่ขึ้นอยู่กับมันก็จำเป็นต้องใช้ลอย


0

ใช้สิ่งนี้:

$("#id").(":display").val("block");

หรือ:

$("#id").(":display").val("none");

ฉันมีปัญหามันไม่ทำงานสำหรับฉัน :(.<style> #choosepath { display: none; } </style> <script> $(document).ready(function () { $('#btn_journey').click(function () { alert("button click"); $('#choosepath').css({"display":"normal"}); }); }); </script> </head> <body> <a href="#" class="btn btn-primary btn-lg" id="btn_journey">Start your journey</a> <div class="col-lg-3 col-md-6 mb-4" id="choosepath"> </div> </body></html>
jaibalaji

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.