2010-06-15 36 views
5

Tôi cần một cách để jQuery trả về tất cả các phần tử có cssjQuery - Làm cách nào để chọn tất cả các phần tử có họ phông chữ được áp dụng cho chúng?

họ phông chữ: AvantGardeITCbyBT-Bold, sans-serif;

áp dụng cho họ.

Tôi nghĩ cách duy nhất để làm điều này là lặp qua tất cả các phần tử và kiểm tra xem css này có được áp dụng cho nó hay không. Có vẻ như một cách làm chậm?

Có cách nào để thực hiện điều này thông qua Bộ chọn jQuery không?

+0

Bạn có quan tâm đặc biệt về chuỗi này chính xác - 'font-family: AvantGardeITCbyBT-Bold, sans-serif;', hoặc tìm kiếm các yếu tố được sử dụng các phông chữ, có nghĩa là một yếu tố sử dụng một 'font-family' của' family: AvantGardeITCbyBT-Bold, sans-serif, Arial' sẽ khớp với nhau. – Anurag

+0

Tôi đang tìm bất kỳ phần tử nào đang sử dụng phông chữ AvantGardeITCbyBT-Bold – Brady

+0

$ ("*"). (Function() { \t \t if ($ (this) .css ("font-family") == "AvantGardeITCbyBT-Bold, sans-serif") { \t \t \t $() .ieffembedfix này(); \t \t} \t}); Tính năng này hoạt động nhưng có cách nào tốt hơn không? – Brady

Trả lời

3

tốt, bạn có thể mở rộng bộ chọn jQuery với

$(document).ready(function(){ 
    $.extend($.expr[':'], { 
    AvantGardel: function(elem){ 
     var $e = $(elem); 
     return(typeof $e.css('font-family') !== 'undefined' && $e.css('font-family') === 'AvantGardeITCbyBT-Bold'); 
    }, 
    SansSerif: function(elem){ 
     var $e = $(elem); 
     return(typeof $e.css('font-family') !== 'undefined' && $e.css('font-family') === 'sans-serif'); 
    } 
});  
}); 

và sau đó gọi

$(':AvantGardel').hide(); 

hoặc

$(':SansSerif').hide(); 

ví dụ.

dụ làm việc: http://jsbin.com/idova3/edit

+0

Tôi không thể làm việc này. – Brady

+0

http://block.pd.alphaready.com/ không thể để mã của bạn hoạt động ... – Brady

+0

'$ (': AvantGardel')' sẽ bị chậm. – James

Các vấn đề liên quan