Làm cách nào tôi có thể thay đổi hiển thị CSS hoặc chặn thuộc tính bằng jQuery?


Câu trả lời:


923

Cách chính xác để làm điều này là sử dụng showhide:

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

Một cách khác là sử dụng phương thức css của jQuery :

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

@GenericTypeTea: #idđược sử dụng cho id nếu tôi muốn sử dụng classthì sao?
AabinGunz

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

8
Tôi đã thử sử dụng $('#id').css('display', 'none');, nhưng nó không hoạt động. Tuy nhiên, sử dụng $('#id').css('color', 'red');không hoạt động. Tôi không chắc tại sao. Có ai có ý tưởng nào? Cảm ơn trước.
David

5
Cũng đáng để bao gồm sự khác biệt giữa $ ('# id'). Hide () và $ ("# id"). Css ("display", "none") trong câu trả lời này.
ManirajSS

1
Có một sự khác biệt giữa hai, trong đó chức năng trước chỉ ẩn văn bản và không giải phóng một không gian bị chiếm bởi một phần tử trong khi sau đó ẩn nội dung và giải phóng không gian bị chiếm bởi phần tử cocern
Dila Gurung

110

Có một số cách để thực hiện điều này, mỗi cách có mục đích riêng.


1. ) Để sử dụng nội tuyến trong khi chỉ cần gán một phần tử một danh sách những việc cần làm

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

2. ) Để sử dụng trong khi thiết lập nhiều thuộc tính CSS

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

3. ) Để tự động gọi lệnh

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

4. ) Để tự động chuyển đổi giữa khối và không, nếu đó là div

  • một số phần tử được hiển thị dưới dạng nội tuyến, khối nội tuyến hoặc bảng, tùy thuộc vào Ta g N ame

$ ('# ele_id'). chuyển đổi ();


27

Nếu màn hình của div bị chặn theo mặc định, bạn chỉ có thể sử dụng .show().hide(), hoặc thậm chí đơn giản hơn, .toggle()để chuyển đổi giữa khả năng hiển thị.


Đúng, nó sẽ đặt hiển thị thành bất cứ thứ gì ban đầu, có thể là khối hoặc thứ gì đó khác.
danielgwood


6

Một cách khác để làm điều đó bằng phương pháp CSS CSS:

$("#id").css({display: "none"});
$("#id").css({display: "block"});


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

Một lời giải thích sẽ theo thứ tự.
Peter Mortensen

2

Trong trường hợp bạn muốn ẩn và hiển thị một phần tử, tùy thuộc vào việc nó có hiển thị hay không, bạn có thể sử dụng chuyển đổi thay vì .hide().show()

$('elem').toggle();

1

. leather () không hoạt động trong Chrome đối với tôi.

Điều này hoạt động để ẩn:

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

0

Trong trường hợp của tôi, tôi đang thực hiện hiển thị / ẩn các phần tử của biểu mẫu tùy theo phần tử đầu vào có trống hay không, do đó, khi ẩn phần tử, phần tử theo sau phần tử ẩn được định vị lại chiếm không gian của nó, cần phải thực hiện một dấu phẩy: bên trái của các yếu tố của một yếu tố như vậy. Ngay cả khi sử dụng một plugin như phụ thuộc, nó là cần thiết để sử dụng float.


0

Dùng cái này:

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

Hoặc là:

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

tôi có vấn đề nó không hoạt động với tôi :(.<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

0

Sử dụng:

$(#id/.class).show()
$(#id/.class).hide()

Đây là cách tốt nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.