К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как с пом. JS заменить элемент на другой, описанный динамически?

Гость
0 - 14.11.2012 - 19:42
Есть произвольный элемент
<table><tr><td id="xxx">0</td><td>END</td></tr></table>
(может быть divm span, или любое другое)

надо создать, допустим, строку '<td>1</td><td>2</td>' и каким-то образом вставить вместо элемента c id xxx.
Т.е. должно выйти вот такое
<table><tr><td>1</td><td>2</td><td>END</td></tr></table>

как видим, элемент c id xxx вообще исчез, и вместо него подставилось то, что было в строке.

Как такое сделать? Важно: createElement не совсем катит, т.к. там надо прописывать имя тэга, а мы заранее не знаем, что там будет в динамической строке. Может там даже просто текст будет.
Вот такое. Чешу репу уже долго....



Гость
1 - 14.11.2012 - 19:52
Мдя... это не стэк_переволнен, где ответы появляются еще до обновиления страницы....... =))
Гость
2 - 14.11.2012 - 23:15
http://web-color.org/public/jQuery.djvu страница 134
Гость
3 - 14.11.2012 - 23:54
с пом. JS
vk
4 - 15.11.2012 - 04:18
Цитата:
Сообщение от brezhnev Посмотреть сообщение
7-Гавайские субтитры >тогда только - разбор того что нужно вставить, далее сравнение с базой, далее снова на форум
=))
Ну не парьтесь с велосипедом (или граблями?) изучайте И jQuery
Гость
5 - 15.11.2012 - 09:05
3-Гавайские субтитры > жесть....
на jQuery будет что-то типа :
jQuery("#xxx").after("<td>1111</td>");
jQuery("#xxx").remove();
Гость
6 - 15.11.2012 - 18:57
5-lublurtk >
надо на js, jq ковырять не хоцца.
Тут наверное надо что-то типо outerHTML, токо оно не кроссбравзерное походу.
Гость
7 - 15.11.2012 - 21:03
6-Гавайские субтитры >а что там ковырять?)
почти все ф-ции jQuery кроссбраузерные)

http://jsfiddle.net/YPP4y/
Гость
8 - 15.11.2012 - 22:27
Жаль тут нету крупного шрифта.

Втретий раз: НАДО НА JS

Уточняю (для тех кто считает что фреймворк это и есть JS): НАДО НА ЧИСТОМ JS
Гость
9 - 15.11.2012 - 22:49
8-Гавайские субтитры >для тех кто считает что фреймворк это и есть JS - а что это?
CI, Yii это не пхп ?)

напиши сюда http://javascript.ru/forum/
Гость
10 - 15.11.2012 - 23:36
Js - он везде чистый, грязный только код написанный кривыми руками.

а тебе надо НАТИВНЫЙ JS
Гость
11 - 15.11.2012 - 23:45
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
jq ковырять не хоцца.
лучше ждать пока кто то за тебя скопирует от туда 10 строк кода с ключом "after/before" и "remove" и вставит сюда??
Гость
12 - 15.11.2012 - 23:47
Цитата:
Сообщение от Kuba Посмотреть сообщение
а тебе надо НАТИВНЫЙ
(листая словарики): а ты, уважаемый, ничего тяжолого не нюхал перед тем как этот пост писать?
Гость
13 - 15.11.2012 - 23:47
Цитата:
Сообщение от Kuba Посмотреть сообщение
лучше ждать пока кто то за тебя скопирует от туда 10 строк кода с ключом "after/before" и "remove" и вставит сюда??
иди глянь на тот replaceWith и ты поймешь, почему не хоцца. =))
Гость
14 - 17.11.2012 - 16:03
<table id="mytab"> ... </table>
<script type="text/javascript">
document.getElementById('mytab').innerHTML='<tr><t d> Вставляй, что угодно </td></tr>';
</script>
Гость
15 - 17.11.2012 - 20:37
14-dolg >
мдя... =))

ЗЫ
Все, пацаны, вопрос снимается, т.к. разобралсо сам.
Чуть пожже дам кроссбраузерное решение.
Гость
16 - 17.11.2012 - 21:40
http://stackoverflow.com/questions/1...nted-in-string
первый ответ - кроссбравзерное решение
Гость
17 - 17.11.2012 - 23:02
15-Гавайские субтитры >
"createElement не совсем катит", "jq ковырять не хоцца", "надо что-то типо outerHTML" - твои слова. Что-то не устраивает?
Гость
18 - 18.11.2012 - 00:29
Цитата:
Сообщение от dolg Посмотреть сообщение
"createElement не совсем катит"
createElement, в плане "tmp=createElement("div"); tmpюinnerHTML=str" - да. не катит.
Не надо вырывать фразы из контекста. Некрасиво. И даже неприлично.

Цитата:
Сообщение от dolg Посмотреть сообщение
надо что-то типо outerHTML
да. Надо что-то типо outerHTML.
только кроссбравзерное.
Что-то не устраивает? =))
Гость
19 - 18.11.2012 - 01:13
18-Гавайские субтитры>
Я предложил тебе простое решение. А ты мдякаешь и ещё меня обвиняешь в неприличности и дразнишь моим же вопросом. Следи за своими словами.
Гость
20 - 18.11.2012 - 01:24
Цитата:
Сообщение от dolg Посмотреть сообщение
Я предложил тебе простое решение
будь добр, перечитай сабж. Твой innerHTML к сабжу не имеет никакого отношения, т.к. менять надо не inner, а весь элемент. =))
Гость
21 - 18.11.2012 - 01:47
Что значит, "менять надо не inner"? Что такое inner?
Гость
22 - 18.11.2012 - 01:51
Хм..
похоже, ты не шутишь.
Ладно.
Бывает.
Гость
23 - 18.11.2012 - 01:54
Ну скажи, мне интересно
Гость
24 - 18.11.2012 - 01:58
Что ты подразумеваешь под "inner"? Это новое понятие JS?
Гость
25 - 18.11.2012 - 01:58
23-dolg >
чего тут еще говорить?
Мне над было outerHTML, а не innerHTML. Ты не знаешь какая между ними разница?
Гость
26 - 18.11.2012 - 02:09
Знаю, первый не перезаписывает разметку, а добавляет. Но он не кроссбраузерный.
Просто я знаю, что у элемента есть атрибуты, предки, потомки.
А что такое inner?
Гость
27 - 18.11.2012 - 02:11
Столько элементов видел через console.log(). Но inner ни разу не встречал
Гость
28 - 18.11.2012 - 02:11
Цитата:
Сообщение от dolg Посмотреть сообщение
Знаю, первый не перезаписывает разметку, а добавляет.
ясно.
Давайдосвидания.

Цитата:
Сообщение от dolg Посмотреть сообщение
А что такое inner?
inner is the opposite to outer =)))))
Гость
29 - 18.11.2012 - 02:23
Свойство innerHTML для любого элемента имеет в качестве значения строку, содержащую HTML-код, заключенный между открывающим и закрывающим тегами элемента. Иначе говоря, innerHTML содержит внутренний HTML-код контейнера элемента. Присвоение этому свойству нового значения, содержащего HTML-код, приводит к интерпретации этого кода. Разумеется, новое значение может и не содержать тегов.

Свойство outerHTML аналогично свойству innerHTML, но отличается тем, что содержит весь HTML-код, включая внешние открывающий и закрывающий теги элемента.

Первое, что нашёл http://it.kgsu.ru/JS/js0053.html
Давайдосвидание, пустослов
Гость
30 - 18.11.2012 - 02:28
29-dolg >
вот про это и речь. =)
И нефиг тут про innerHTML с умным видом рассусоливать, тем более если спрашивали не про него =))
Гость
31 - 18.11.2012 - 10:05
Просто не оперируют такими понятиями inner, outer. Есть потомки, есть предки, есть элемент. Производители браузеров считают правильным не перезаписывать элемент через обращение к нему самому.
Если в твоем случае нужно что-то вставить вместо таблицы, обращаешься с этим же свойством к предку.
И поверь, в библиотеках JS с innerHTML много что делается.
Гость
32 - 18.11.2012 - 17:43
31-dolg >
ваще-то в сабже было предельно ясно поставлена задача, и до "Тут наверное надо что-то типо outerHTML" ты таки дочитал.
Посему вопрос: при чем тут твой innerHTML, если надо заменить весь элемент? =))


К списку вопросов






Copyright ©, Все права защищены