Я читал, что доступ к объектам или коллекциям через jQuery через переменные гораздо эффективнее, чем постоянный доступ к ним через встроенный код.Даже в простом тесте это действительно так:
<!doctype html>
<html>
<head>
<title>Demo</title>
</head>
<body>
<script src="/jquery-1.5.1.js"></script>
<script>
var SomeChoiceRadios;
$(document).ready(function(){
SomeChoiceRadios = $("#MyForm input:radio[name='SomeChoice']");
});
function DoStuff()
{
console.profile('Optimized');
for (i=0; i < 10000; i++)
foo = SomeChoiceRadios.filter(":checked").val();
console.profileEnd();
}
function DoStuff2()
{
console.profile('Inline');
for (i=0; i < 10000; i++)
foo = $("#MyForm input:radio[name='SomeChoice']:checked").val();
console.profileEnd();
}
</script>
<form id="MyForm" name="MyForm">
<input type="radio" name="SomeChoice" value="0">0<br>
<input type="radio" name="SomeChoice" value="1">1<br>
<input type="radio" name="SomeChoice" value="2">2<br>
<input type="radio" name="SomeChoice" value="3">3<br>
<input type="radio" name="SomeChoice" value="4">4<br>
<input type="radio" name="SomeChoice" value="5">5<br>
<input type="button" value="Time" onclick="DoStuff()">
<input type="button" value="Time" onclick="DoStuff2()">
</form>
</body>
</html>
Учитывая приведенный выше пример, есть ли более быстрый способ получить значение переключателя с отметкой SomeChoice
, если я пытаюсь получить к нему доступ с помощью переменной (то есть SomeChoiceRadios
)?