Tôi tự hỏi liệu có cách nào để lấy giá trị css từ tệp định kiểu khi không có phần tử nào trong DOM bằng cách sử dụng nó không? Tôi đang sử dụng jQuery và tôi sử dụng selector $ (". Classname"). Css() để có được các giá trị. Nhưng với trường hợp "classname" không có trong bất kỳ yếu tố, phải làm gì để có được giá trị" Cảm ơnNhận giá trị css không có phần tử DOM
Trả lời
Chỉ cần tạo một phần tử với tên lớp đó và kiểm tra nó. Bạn thậm chí không cần phải đính kèm nó vào DOM:
var $el = $('<div class="classname"></div>');
var opacity = $el.css('opacity') // or whatever
Mặc dù $el
không phải là thực sự hiện diện trong DOM, bạn vẫn có thể truy cập vào tất cả các tiện nghi hiện của nó.
Sửa: như đã đề cập trong các ý kiến, phương pháp này không phải lúc nào việc như mong đợi (ví dụ inherited css values không xác định trên .classname một cách rõ ràng, selector specificity trên .classname, vv).
Ví dụ như sau thất bại do #foo
tăng độ đặc hiệu selector ngoài của một độc .bar
:
css:
#foo .bar { color: red; }
js:
var $el = $('<div class="bar"></div>');
$el.css('color'); // Expected: "red", Actual: ""
Bạn cần phải phân tích các phong cách từ document.styleSheets
.
Xem http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript trong đó trình bày một cách tiếp cận qua trình duyệt để nhận được và thêm css động.
Nó hoạt động với document.styleSheets
và cả của .rules
IE và mọi người khác của .cssRules
Nó cũng có lợi thế là hơi trừu tượng, do đó bạn không cần phải lo lắng về các chi tiết.
Và do đó, một câu trả lời khác trong ngăn xếp tràn xuống để liên kết phân rã: ( – Gusk
Để workaround vấn đề Chromium , bạn cần phải thêm nó vào cơ thể:
mẫu CSS:
.dummy {
min-width: 50px;
max-width: 250px;
}
mẫu javascript:
$(document).ready(function() {
var dummy = $('<div class="dummy" style="display: none;"></div>').appendTo('body');
console.log(dummy.css("min-width"));
console.log(dummy.css("max-width"));
dummy.remove();
});
này hoạt động trên tất cả các trình duyệt hiện đại, Chrome, FF, IE11.
- 1. Javascript Nhận giá trị phần tử
- 2. knockout.js - Nhận ViewModel từ phần tử DOM
- 3. Nhận con của phần tử bằng giá trị thuộc tính
- 4. Jade: thuộc tính phần tử không có giá trị
- 5. Nhận giá trị của nhiều phần tử với Jquery
- 6. Có cách nào để nhận giá trị phần tử khác trong Ít hơn không?
- 7. Chọn XElement nơi phần tử con có giá trị
- 8. PHP DOM thay thế phần tử bằng phần tử mới
- 9. Thuộc tính giá trị thay thế (không được chấp nhận) cho các phần tử li
- 10. XPath - Chọn các phần tử có giá trị bằng
- 11. Nhận giá trị văn bản Nút XML với Java DOM
- 12. Chèn phần tử giá trị bằng nhau
- 13. jQuery nhận các giá trị di chuột css
- 14. Có phương pháp trình duyệt chéo nào nhận các giá trị css được sử dụng của tất cả các thuộc tính của tất cả các phần tử không?
- 15. Javascript DOM: Đặt thuộc tính phần tử DOM tùy chỉnh
- 16. BeautifulSoup: Làm cách nào để thay thế giá trị trong phần tử có thẻ phần tử?
- 17. GWT thêm ClickHandler vào phần tử DOM
- 18. Giá trị jQuery cho 'đúng' trên phần tử cố định mà không có 'px'
- 19. Thêm biến vào các phần tử DOM
- 20. Đối tượng jQuery và phần tử DOM
- 21. Kiểm tra xem phần tử DOM có tập trung
- 22. Có cách nào để lấy hộp giới hạn (tính bằng pixel) của phần tử DOM không?
- 23. Di chuyển phần tử DOM có nối thêm()?
- 24. Phần tử di chuyển JavaScript trong DOM
- 25. Lấy tất cả các kiểu css cho phần tử DOM (a la Firebug)
- 26. Thuộc tính dữ liệu CSS thuộc tính dòng mới & giá trị nội dung phần tử giả
- 27. Capybara: cách kiểm tra giá trị TEXT của một phần tử với xpath và css?
- 28. jQuery chọn các phần tử tùy chọn theo giá trị
- 29. Capybara không nhận dạng được các phần tử DOM được thêm động?
- 30. Java: Tạo phần tử DOM từ phần tử, không phải tài liệu
Điều gì về phong cách kế thừa? Tôi giả sử bạn có thể sử dụng cái gì đó như '$ ('
Ý tưởng tuyệt vời ... –
Điều này dường như không hoạt động Chrome ... – xpy