I recently upgraded my version of PHPStorm IDE and it now warns me about inefficient jQuery usage.
For example:
var property_single_location = $(\"#p
I believe the difference between the two methods when using recent versions of jQuery and browsers is negligible. I constructed a test that shows that it is now actually 10% faster to do a combined selector rather than selection on id and then find for a very simple case:
http://jsperf.com/jquery-find-vs-insel
For selection of multiple children by class at any depth, the "find" does appear to be faster:
http://jsperf.com/jquery-find-vs-insel/7
There was some discussion about this on jQuery forums, but its 3 years old: https://forum.jquery.com/topic/which-jquery-selection-is-efficient As they point out here, if you are doing a lot of operations on same id selector, the greatest performance improvement is found by caching the top level element. On the other hand if you are doing just a few selections, there is going to be virtually no performance difference.
Therefor I believe that IntelliJ is overstating the importance of this code style.
The first question is to hit Alt+Enter, and select the first tip in the list, then hit Enter, you'll see what it thinks the most efficient way.
I had the same question today and was able to find a solution thanks to Scott Kosman here.
Basically the answer is to select IDs individually and then use .find(...)
for anything below. So taking your example:
$("#property [data-role='content'] .container");
Changing it to this makes PhpStorm happy and can evidently be more than twice as fast:
$("#property").find("[data-role='content'] .container");