... вызов jQuery вернет не более полудюжины объектов ...
Итак, полдюжины - это шесть. Четыре из них будут html
, head
, script
и body
. :-) У вас есть только два других элемента на странице?
Серьезно, если число очень мало, это не имеет значения. Вы бы хотели ограничить вызов $()
только теми элементами, которые действительно в нем нуждаются, а не $("*")
, что является большим молотом.
Если вам действительно нужно просмотреть весь документ, используйте простую функцию рекурсивного спуска:
function applyPie(element) {
var node;
for (node = element.firstChild; node; node = node.nextSibling) {
if (node.nodeType === 1) { // 1 = element
node.style.boxShadow = /* ...?... there's nothing in your jQuery call */;
node.style.borderRadius = /* ...?... there's nothing in your jQuery call */;
PIE.attach(node);
applyPie(node);
}
}
}
applyPie(document.documentElement);
Это вызывает PIE.attach
для каждого элемента, кроме documentElement
. Вы можете использовать nodeName
(или tagName
), чтобы не прикреплять PIE к html
, head
, style
и т. Д. Использование простой функции рекурсивного спуска позволяет избежать создания больших плоских массивов в памяти, что и делает $("*")
.