jqueryはJavaScriptと同じように見えます。ここでは、実際のコードは次のとおりです。
if (jQuery.expr && jQuery.expr.filters) {
// here is the real guts of it
jQuery.expr.filters.hidden = function(elem) {
// plain old JavaScript determining offset
var width = elem.offsetWidth,
height = elem.offsetHeight;
// if any of these are "true" then its "invisible"
return (width === 0 && height === 0) ||
(!jQuery.support.reliableHiddenOffsets &&
((elem.style && elem.style.display) ||
jQuery.css(elem, "display")) === "none");
};
// this is just checking for not hidden
jQuery.expr.filters.visible = function(elem) {
return !jQuery.expr.filters.hidden(elem);
};
}
「reliableHiddenOffsets」コードは、この前のように定義されていて、ここでの本当の教訓は、このようなものはロケット科学ではないです
isSupported = (tds[ 0 ].offsetHeight === 0);
tds[ 0 ].style.display = "";
tds[ 1 ].style.display = "none";
// Check if empty table cells still have offsetWidth/Height
// (IE <= 8 fail this test)
support.reliableHiddenOffsets = isSupported && (tds[ 0 ].offsetHeight === 0);
の下にそれを見ることができます。オープンjQueryをクラックして見てください。 jQueryの本当の宝石は、テストされているので、おそらくそれで問題を見つけることはないでしょう。これは、偉大なセレクタエンジンと抽象化のほかに、それほど価値があります。実際に見るのを恐れないでください。あなたは素晴らしい副作用として何かを学びます。
jqueryを持っているとどうして気になりますか? – dynamic
'visibility:hidden;'は方程式の一部ではありませんか?同等のことを知らないが、これは短い関数で書くことができます。 - @ yes123場合によっては、関数を必要とし、オーバーヘッドとしてすべてのコアフレームワークを必要とすることはありません。 – Smamatti
[Here](https://github.com/jquery/jquery/blob/master/src/css.js#L380)jQueryは、要素がセレクタを通過するかどうかをチェックします。 – pimvdb