यह एक पुरानी है, लेकिन जोनाथन डेल Strother के जवाब के लिए धन्यवाद, यह मेरे कि यह कैसे बाहर थोड़ा और दौर के लिए पर सोच मिला:
(function($){
// Add commonly used regex to the jQuery object
var regex = {
digits: /^(-?\d+(?:\.\d+)?)([a-zA-Z]+)?$/
,expr: /^([\w-]+)\s*([:=<>])\s*([\w-\.]+(?:\([^\)]+\))?)$/
};
// Create a custom jQuery function that allows a bit more useful CSS extraction
$.fn.extend({
cssExtract: function(cssAttr) {
var val = {prop:this.css(cssAttr)};
if (typeof val.prop === "string") {
var match = regex.digits.exec(val.prop);
if (match) {
val.int = Number(match[1]);
val.metric = match[2] || "px"
}
}
return val;
}
});
// Create the custom style selector
$.find.selectors[":"].style = function(el, pos, match) {
var search = regex.expr.exec(match[3]);
if (search) {
var style = search[1]
,operator = search[2]
,val = search[3]
,target = $(el).cssExtract(style)
,compare = (function(result){
if (result) {
return {
int: Number(result[1])
,metric: result[2] || "px"
};
}
return null;
})(regex.digits.exec(val));
if (
target.metric
&& compare && compare.metric
&& target.metric === compare.metric
) {
if (operator === "=" || operator === ":") {
return target.int === compare.int;
} else if (operator === "<") {
return target.int < compare.int;
} else if (operator === ">") {
return target.int > compare.int;
}
} else if (target.prop && (operator === "=" || operator === ":")) {
return target.prop === val;
}
}
return false;
};
})(jQuery);
अब आप कस्टम style
चयनकर्ता के साथ आसानी से पूछ सकते हैं:
$("div:style(height=57)")
इस उत्तर के समय - स्टैक ओवरफ़्लो (इस पृष्ठ) के शीर्ष div तत्वों को वापस करना चाहिए।
कुछ इस तरह भी काम करेगा:
$("h3:style(color:rgb(106, 115, 124))")
प्रयास आपके ब्राउज़र में डेवलपर उपकरण में कोड जोड़ने। मैंने क्रोम में इसका परीक्षण किया। दूसरों में इसका परीक्षण नहीं किया है। मैंने अन्य पूर्व-मौजूदा पुस्तकालयों/प्लगइन के बाहर शोध करने में भी बहुत अधिक काम नहीं किया।
कोई ऐसा चयनकर्ता –