Получение данных из тега в массиве, как?
Добрый день.
Есть HTML-Страничка, а внутри скрипт, в нем массив, допустим: var HM = new Array(); HM[1] = "<name>Имя</name>"; HM[2] = "<name>Имя2</name>"; Вопрос: Как достучаться до "Имя" и "Имя2"? Пробовал примерно так: HM[1].getElementsByTagName('name')[0].childNodes[0].nodeValue; HM[2].getElementsByTagName('name')[0].childNodes[0].nodeValue; Но, нет, не вышло. Подскажите, пожалуйста! А то нужно хранить динамечески подгружаемую информацию, а ее много, мне кажется удобнее всего ее хранить именно в массивах-тегах. Спасибо. |
replace();
innerHTML |
Вы не могли бы показать на моем примере, как это использовать? А то я не совсем понял, спасибо.
|
var HM = new Array(); HM[1] = "<name>Имя</name>"; HM[2] = "<name>Имя2</name>"; alert( HM[1].match(/>(.+?)</)[1] ); |
3 проблемы с этим кодом:
1) В IE вообще не работает. 2) Почему-то можно запустить только 1 раз, после обновления еще 1 раз и так до бесконечности, а мне нужно неограниченно раз без обновления страницы. 3) если дописать еще информации, вроде этого: HM[1] = "<name>Имя</name><fam>Фамилия</fam><age>27</age>"; то не совсем понятно, как обратиться к следующим тегам. Надеюсь на помощь, спасибо. |
var HM = new Array(); HM[1] = "<name>Имя</name>"; var x = document.createElement('div'); x.innerHTML = HM[1]; alert( x.getElementsByTagName('name')[0].innerHTML ); |
Сделал так, но в IE все равно не работает и по onmouseover вызывается лишь 1 раз, а вот проблему с тегами, та что номер 3 решили :)
function test(id) { if (id < 1) return; var x = document.createElement('div'); x.innerHTML = HM[id]; document.getElementById('shher').innerHTML = x.getElementsByTagName('name')[0].innerHTML; } |
Madd, что за бред ты вообще пишешь?
HTML нужно хранить не в массивах, а в HTML-виде. |
HTML, CSS, PHP я знаю хорошо, изучать Яваскрипт у меня, к сожалению, времени нет, мне нужно срочно доделать сайт, именно поэтому я пишу на этот форум, в эту тему, если было бы время, я бы, разумеется, разобрался сам, но сроки сильно жмут.
Так что, все же надеюсь на какой-то готовый примерчик для меня, тем более прошу самое элементарное показать. Кстати, скрипт не работает в IE, так как я не знаю Явы? Интересно, видимо душа ИЕ открывается только тем, кто познал Яву.. Я просто вставил предложенный мне код в ИЕ и сказал, что он там работать отказывается. Заранее благодарен. |
Во первых, как ты получаешь "динамически загружаемую информацию"? Ajax? Тогда получай её как responseXML и работай как с DOM.
|
Цитата:
В том то и дело, что я не знаю как ее получать, вопрос как раз про это. Короче говоря. На сайте есть, например, 10 картинок, при наводе на каждую текст в диве слева от этих 10 картинок заменяется на данные из 1 из 10 массивов, в каждом из которых есть теги. ЗЫ Если предложите более удобное хранение информации, буду только рад. Очень хотелось бы увидеть пример, непосредственно на HTML+javascript от Вас, соотв. моей схеме. Спасибо. |
Цитата:
Цитата:
Цитата:
Цитата:
|
А форум зачем в таком случае?
ЗЫ Символически заплатил бы за создание для меня подобного скрипта, но надо понимать, он слишком прост, даже для новичка в Java, которым я и не являюсь :( Поэтому только символически оплачу. (это баксов 10 наверное.) Если кто поможет - пишите в личку. |
Цитата:
|
Скажу больше, скрипт прекрасно работает, но если функцию вызвать второй раз, она не сработает, вопрос был один, ПОЧЕМУ?
|
Цитата:
http://phpclub.ru/faq/WhyForum |
var x = document.createElement('div'); x.innerHTML = HM[id]; document.getElementById('shher').innerHTML = x.getElementsByTagName('name')[0].innerHTML; Все проблемы решил, кроме работы под IE, может кто-то знает. почему данный код не работает под IE? |
Madd,
Ну заверните в фун-ю, всё пашет: function inner() { var HM = new Array(); HM[1] = "<p>Имя</p>"; HM[2] = "<p>Имя2</p>"; var x = document.createElement('div'); x.innerHTML = HM[1]; document.getElementById('shher').innerHTML = x.getElementsByTagName('p')[0].innerHTML; } <div id="shher"></div> <script type="text/javascript">inner();</script> |
форум != благотворительный фонд
форум == обмен знаниями (не путать с обучением) |
JsLoveR,
Во всех браузерах работает, IE пишет такую ошибочку: Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
.................................
|
Madd,
Что есть такой тэг как "<name></name>" ?, измените name на span, по мне ie не понимает такого тэга. Я думал, что Вы под <name> подразумеваете имя любого тэга, а Вы так и пишете. |
Цитата:
Цитата:
Да, и не плохо было бы узнать, что такое дебагер. |
Цитата:
Станет нормальным, когда я хоть немного разбирусь как динамически хранить куеву тучу данных и удобно их получать в дивах, тогда уже перепишу. Цитата:
Цитата:
Цитата:
|
Madd, Вам, что тяжело изменить <name></name> на <span></span> ??????????????????
|
JsLoveR,
Нет, вовсе нет, сейчас попробую объяснить. Будет что-то вроде: <name>1</name><name2>2</name2><str>3</str><agi>4</agi> в каждом массиве, только тегов намного больше, использовать только стандартные теги в данной ситуации совсем неудобно. Поэтому я и спрашиваю совета, как лучше хранить в данном случае динамически отображаемую куеву тучу данных... |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Madd, у тебя в голове каша. Ты не понимаешь с чем имеешь дело. Как следствие - глупые вопросы и неадекватное поведение. Стоит немного отдохнуть, я считаю. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
function inner(it) { var names = new Array("орк","эльф","человек","гном"); document.getElementById('shher').innerHTML = names[it]; } <div><span onmouseover="inner(0)">орк</span> <span onmouseover="inner(1)">эльф</span> <span onmouseover="inner(2)">человек</span> <span onmouseover="inner(3)">гном</span></div> <br /> <div id="shher"></div> Если после этого у Вас ничего не выйдет убейте меня об стол. |
JsLoveR,
Вы не поняли задачи.. B~Vladi, Был прав JSON, похоже, то, что нужно, начал читать о нем, первые впечатления положительны.. |
Цитата:
|
Цитата:
|
Усе, можно закрыть тему, я разобрался с JSON.
|
Часовой пояс GMT +3, время: 10:28. |