+ 1 ответ J-P: функциональные литералы значительно лучше, чем строки. Взламывать код в строках - это ужас, которого следует избегать любой ценой. Кроме того, setAttribute
почти никогда не следует использовать в HTMLDocument из-за совместимости с IE (а также из-за того, что свойства HTML уровня 1 DOM в любом случае более читаемы).
Одна потенциальная ловушка: если вы делаете это в цикле, который выглядит так, как если бы вы были, вы не получите желаемого поведения из-за проблемы замыкания цикла . Вы можете решить это с помощью другого замыкания:
for (var i= 0; i<alines.length; i++) {
elements[i].onclick= function(i) {
return function() {
fnDisplay_Computers(alines[i]);
};
}(i);
}
или более аккуратно с помощью функции пятого издания ECMAScript Function#bind
:
for (var i= 0; i<alines.length; i++) {
elements[i].onclick= fnDisplay_Computers.bind(null, alines[i]);
}
Добавление функции # bind в браузеры, которые ее еще не поддерживают.