Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Вопросов несколько, так что опишу их дальше=) (https://javascript.ru/forum/css-html/8319-voprosov-neskolko-tak-chto-opishu-ikh-dalshe%3D.html)

TrooMan 19.03.2010 17:00

Вопросов несколько, так что опишу их дальше=)
 
Возможно такой вопрос уже был...Посмотрел, вроде не нашел...Вообще я не пишу на JSP, тока учусь. Поэтому, не смейтесь над моим кодом.
var выборкаСотров = xmlhttp.responseXML.getElementsByTagName(ИЕ("Вопрос"))
				var sSel = 0;
				for (var поз = 0; поз < выборкаСотров.length; поз++){
					var ИмяКолонки = "Перечисление";
					var реквизит = выборкаСотров[поз].getElementsByTagName(ИЕ(ИмяКолонки))[0];
					if (реквизит != null){ 
					var ЗначениеРеквизита = "";
					if (реквизит.hasChildNodes()) {ЗначениеРеквизита = реквизит.childNodes[0].text};
					if (ЗначениеРеквизита=="да/нет") {
						sSel = sSel + 1;
						var table = document.createElement('table');
						var row = table.insertRow(-1);
						var cell = row.insertCell(-1);
						cell.style.width = "300px";
						cell.style.border = "solid black 1px";
						var ИмяКолонки = "Вопрос";
						var реквизит = выборкаСотров[поз].getElementsByTagName(ИЕ(ИмяКолонки))[0];
						var ЗначениеРеквизита = "";
						if (реквизит.hasChildNodes()) ЗначениеРеквизита = реквизит.childNodes[0].text;
						cell.innerHTML = ЗначениеРеквизита;
						var cell1 = row.insertCell(-1);
						cell1.style.border = "solid black 1px";
						var selector = document.createElement('select');
						selector.id = "Sel" + sSel;
						selector.name = 'YesNo';
						cell1.appendChild(selector);
						var option = document.createElement('option');
						option.value = '0';
						option.appendChild(document.createTextNode('Yes'));
						selector.appendChild(option);
						option = document.createElement('option');
						option.value = '1';
						option.appendChild(document.createTextNode('No'));
						selector.appendChild(option);
						document.body.appendChild(table);	
				}
			}	
			}


Вопрос1: Не работает в Opere и FireFoxe. Почему?
Вопрос2: Можно ли в цикле для вырисовывания таблицы использовать jqGrid или jQuery. Если можно, то можно пример какой нить? Данные для таблицы получаю по средствам Soap запрос из базы 1С. Может нужен будет весь мой код, точнее код всего скрипта. Заранее спасибо...

subzey 19.03.2010 17:56

Цитата:

реквизит.childNodes[0].text

попробуйте вместо этого
реквизит.childNodes[0].textContent || реквизит.childNodes[0].innerText


Да, и кстати, Вы не 1С-ник?

TrooMan 19.03.2010 18:30

Я извиняюсь за своё нубство=) Мне что, везде в моём коде реквизит.childNodes[0].text изменить на реквизит.childNodes[0].textContent || реквизит.childNodes[0].innerText

Как вы догадались, что я 1сник?=))))

Gvozd 19.03.2010 18:53

Цитата:

Сообщение от TrooMan
Как вы догадались, что я 1сник?

элементарно, Ватсон
на вашем рабочем компьютере установлен 1C

subzey 19.03.2010 20:00

Да, попробуйте заменить.

Цитата:

Сообщение от TrooMan
Как вы догадались, что я 1сник?=))))

Я телепат. Вышел из отпуска.

Octane 19.03.2010 20:25

Самое страшное, что в JS тоже так можно, не в смысле псевдокода:
var тарамПамПам = "O_o";

alert(тарамПамПам);
:D

e1f 19.03.2010 20:59

Octane, а так? :)
var 变量 = "Oo";
alert(变量);

Octane 19.03.2010 21:35

угу
Цитата:

Starting with JavaScript 1.5, you can use ISO 8859-1 or Unicode letters such as å and ü in identifiers. You can also use the \uXXXX Unicode escape sequences listed on page 34 as characters in identifiers.
только хз для чего, тут комментарии писать по-русски, замучаешься раскладку переключать, а если еще и имена переменных…

subzey 19.03.2010 22:34

В php тоже можно русский матерный для имен переменных и классов. Но, опять-таки, зачем?

TrooMan 20.03.2010 17:33

Что-то вы ребят отошли от моего вопроса=) Про jQuery вообще ничего мне не ответили. subzey?

subzey 20.03.2010 17:44

TrooMan,
тот кусок кода не работает?

Вообще, сложновато разобраться. Вы даже не сказали, какая ошибка.

TrooMan 21.03.2010 10:10

Ошибка в том, что именно этот кусок кода не работает под оперой и лисой. В IE все нормально срабатывает. Могу конечно выложить весь код скрипта если это Вам поможет? А про jQuery что можете сказать?

TrooMan 22.03.2010 10:06

Ребят такой вопрос. В ИЕ срабатывает такая фишка: реквизит.childNodes[0].text, но не срабатывает в Лисе и Опере. В Опере и Лисе срабатывает реквизит.childNodes[0].textContent. Как быть? Что делать? Подскажите. реквизит.childNodes[0].innerText не подходит

subzey 22.03.2010 11:11

В js оператор || возращает не булевое значение, а первое, приводящееся к true.
Соответственно,
var j = реквизит.childNodes[0].text || реквизит.childNodes[0].textContent;

вернет реквизит.childNodes[0].text, если он есть. Если его нет — реквизит.childNodes[0].textContent. Если и его нет, то false.

Kolyaj 22.03.2010 11:49

Цитата:

Сообщение от subzey
вернет реквизит.childNodes[0].text, если он есть. Если его нет — реквизит.childNodes[0].textContent. Если и его нет, то false.

Не так. Левое выражение, если оно истинно, иначе правое. Т.е. false ниоткуда не возьмётся.

TrooMan 22.03.2010 11:54

Окэ это я замутил. Ну а все таки ребят. Опять повтрюсь...
Сейчас я реализовал свой маленький сайт на JSP. Я делаю СОАП запрос в базу 1с, получаю массив, бегу по нему и программно создаю таблицу. Вопрос: возможно ли в цикле передавать данные по 1ой строке, а не всю таблицу в жигрид или в жиквери я уже запутался если честно, ну и соответственно программно рисовать таблицу. Просто по крайней мере те примеры которые я видел они делали так: указываем наименования столбцов, затем запрос, получаем данные, их отправляем в жигрид и выходит табличка. Именно уже как бы готовая таблица. Если нублю, заранее сори...То есть просьба какая. Если можно пример: бежать в цикле по массиву, получаем данные по строке, кидаем эти данные в жигрид и выводим строку...

subzey 22.03.2010 12:52

Alas, с jQgrid не работал.

TrooMan 23.03.2010 14:16

Не подскажите случайно, почему не получается следующее:
tableTag.appendChild(tbodyTag);
for (var n= 0; n < 10; n++){
tbodyTag.appendChild(Row2);}


Строка Row2 не добавляется 10 раз. Рисуется 1 раз и всё. Почему?

Octane 23.03.2010 14:20

appendChild не клонирует элемент, а просто переносит его по дереву.

TrooMan 23.03.2010 14:26

Оке, не подскажите тогда, как мне программно добавить 10 раз строку Row2?:)

Octane 23.03.2010 15:00

Создать 10 элементов и добавить каждый в дерево с помощью appendChild.

TrooMan 23.03.2010 15:07

Понимаете. Сам элемент Row 2 я создаю программно один раз. В эту строку я вставляю 5 столбцов. После этого я хочу именно эту строку вывести 10 раз подряд. Я не верю, что в JS нельзя так сделать:)

e1f 23.03.2010 15:28

TrooMan,
копать в сторону cloneNode(true)

Nekromancer 23.03.2010 15:33

tableTag.appendChild(tbodyTag);
for (var n= 0; n < 10; n++){
tbodyTag.appendChild(Row2.cloneNode(true));}

TrooMan 23.03.2010 16:01

Спасибо. Row2.cloneNode(true) прокатило.:)

Ребят, у меня опять вопрос. Просто синтаксис JSP никак не просеку.

У меня есть массив значений типа:
Таблица1 - Вопрос 1
Таблица1 - Вопрос 2
Таблица1 - Вопрос 3
Таблица2 - Вопрос 1
Таблица2 - Вопрос 2
Таблица2 - Вопрос 3

То есть мне нужно нарисовать 2 таблицы, с 3-мя столбиками, и по 10 строк. В примере желательно получать данные именно из Масссива...Подскажите плиз...

Octane 23.03.2010 19:02

http://webew.ru/articles/598.webew


Часовой пояс GMT +3, время: 10:58.