Как этот код будет реорганизован для использования jQuery?Как этот код будет реорганизован для использования jQuery?
function emleProcessOnLoad(aThis) {
var result = document.evaluate("//span[@class='emleOnLoad']",
aThis.document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var jj=0; jj<result.snapshotLength; jj++){
eval("var emleThis=result.snapshotItem(jj);" + result.snapshotItem(jj).textContent);
}
}
Там, как представляется, четыре вопроса для JQuery по адресу:
- Контекст:
aThis.document
- Выбор:
//span[@class='emleOnLoad']
- Итерация:
for (var jj=0; jj<result.snapshotLength; jj++)
- Значение:
.textContent
Код является фрагментом от Emle - Electronic Mathematics Laboratory Equipment Файл JavaScript emle_lab.js.
Функция .evaluate()
захватывает все теги <span>
, которые имеют класс emleOnLoad
. В результате чего содержание текст содержит фрагмент экспрессии, такие как:
emleHandleInput(emleThis.parentNode.parentNode,"EMLE_CET_PROPER_FRACTION");
, который прилагается к:
var emleThis=result.snapshotItem(jj);
, а затем выполняется для каждого найденного элемента с помощью функции .evaluate()
.
Eval is Evil! Будьте очень осторожны при использовании eval, особенно если ваш источник не заслуживает доверия. –
Нынешнее усилие состоит в том, чтобы реорганизовать Emle с помощью jQuery, который в этот момент уменьшил LoC на 30%. Я добавил проект Eval-Is-Evil в проект Emle: https://blueprints.launchpad.net/emle/+spec/eval-is-evil –
С другой стороны, если источник * * доверен, есть ничто изначально не ошибочно с eval. – noah