Цитата:
|
this.show_Comment = function(from, to){ var mass_of_all_nodes = 0; var length_of_the_collection_of_node = 0; mass_of_all_nodes = document.body.childNodes; length_of_the_collection_of_node = mass_of_all_nodes.length; for(var i = 0;i < length_of_the_collection_of_node;i++){ if(mass_of_all_nodes[i].nodeType == 8 && mass_of_all_nodes[i].nodeName == "#comment"){ if(mass_of_all_nodes[i].data.indexOf(from) != '-1' || mass_of_all_nodes[i].nodeValue.indexOf(from) != '-1'){ var from_where = 0; var when_stopd = 0; var string_of_data = ''; from_where = mass_of_all_nodes[i].data.indexOf(from); when_stopd = (mass_of_all_nodes[i].data.indexOf(to) + 3); for(var j = from_where;j < when_stopd;j++){ string_of_data += mass_of_all_nodes[i].data.charAt(j); } alert(string_of_data + ' was found in body'); return; } } } } Конечная функция получилась вот такой! где я такое увидел, да видел у некоторых прогеров, которые на С писали, но сам думаю что так и себе понятней и человеку который будет после тебя. С какой я планеты, да вроде с этой, хотя хз ;) |
ну а метка там нужны была для того, что бы если функция успешно завершилась, то есть нашла строку - программа обходила блок с сообщением что ничего не найдено.
|
Соблюдать надо правила именования того языка, на котором ты пишешь, а не который ты где-то когда-то видел. Тем более если твой код увидит кто-то кроме тебя.
Зачем ты инициализируешь переменные сначала нулями, а потом тутже присваиваешь им новые значения? Опять же я не понял про nodeValue и nodeName. Если доступаешься к элементу массива много раз, то почему бы не вынести элемент в переменную? А вот это: Цитата:
Вложенные if'ы - тоже зло. В каком-то проекте крупном, не помню, даже патч не примут если есть три вложенных if'a. Вот мой вариант (примерно так же напишет любой js-прогер с планеты земля): this.showComment = function(prefix, suffix) { var nodes = document.body.childNodes; for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; if (node.nodeType !== node.COMMENT_NODE) continue; var prefixIndex = node.data.indexOf(prefix); if (prefixIndex < 0) continue; var suffixIndex = node.data.indexOf(suffix); var data = node.data.substring(prefixIndex, suffixIndex + 3); return alert(data + ' was found in body'); } }; Чей на твой взгляд читабельней? nodes.length не вижу смысла кэшировать. Если нужна поддержка IE8, то тебе придется самому определить константу COMMENT_NODE. Откуда число + 3? Че за магия? |
danik.js danik спасибо буду мотать на ус, ещё многому предстоит научиться)
|
Часовой пояс GMT +3, время: 18:47. |