Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   HTML код тэга (не innerHTML) (https://javascript.ru/forum/css-html/24447-html-kod-tehga-ne-innerhtml.html)

elf2002 30.12.2011 05:06

HTML код тэга (не innerHTML)
 
Добрый день.
Подскажите пожалуйста, можно ли каким-то образом узнать HTML-код определенного тэга?

Например есть <b id='id3' style="color:red;" onclick="alert(this.all????)">123</b>
нужно чтобы по клику возвратило
"<b id='id3' style="color:red;" onclick="alert(this.all????)">123</b>", т.е. сам код самого тэга.
Это возможно?:blink:

devote 30.12.2011 05:22

<div>
    <b id='id3' style="color:red;" onclick="getDoc(this)">123</b>
</div>

<script>
function getDoc( self ) {
    alert( self.parentNode.innerHTML );
}
</script>

trikadin 30.12.2011 05:44

devote, а если элементов несколько?..

devote 30.12.2011 05:50

Цитата:

Сообщение от trikadin
devote, а если элементов несколько?..

ну значит пусть сует один в один :D

trikadin 30.12.2011 06:07

devote, :)

melky 30.12.2011 10:53

Цитата:

Сообщение от devote (Сообщение 147269)
ну значит пусть сует один в один :D

если браузер нормальный, то можно обойтись outerHTML :

<div>
    <b id='id3' style="color:red;" onclick="getDoc(this)">123</b>
</div>

<script>
function getDoc( self ) {
    alert( self.outerHTML );
}
</script>

рони 30.12.2011 10:55

Цитата:

Сообщение от trikadin
devote, а если элементов несколько?..

Вариант...
<div>
    <b id='id3' style="color:red;" onclick="getDoc(this)">123</b>
    <b id='id3' style="color:Fuchsia;" onclick="getDoc(this)">321</b>
</div>

<script>
function getDoc( self ) {
   var d = document.createElement('DIV');
   var s = self.cloneNode(1);
   d.appendChild(s)
alert( d.innerHTML );
}
</script>

devote 30.12.2011 15:21

melky,
self.outerHTML не у всех браузеров есть
рони,
да вполне кроссбраузерный вариант

trikadin 30.12.2011 15:47

рони, я тоже об этом думал, но если у элемента over 9000 детей, то это не очень. Но - согласен - единственный кроссбраузерный вариант.

melky 30.12.2011 16:01

Цитата:

Сообщение от trikadin (Сообщение 147397)
рони, я тоже об этом думал, но если у элемента over 9000 детей, то это не очень. Но - согласен - единственный кроссбраузерный вариант.

можно использовать мой вариант и его.

trikadin 30.12.2011 16:18

melky, ну понятно, да)

elf2002 30.12.2011 20:01

Цитата:

Сообщение от devote (Сообщение 147269)
ну значит пусть сует один в один :D

Какой, однако, искристый юмор.
Вы так всем помагаете, отвечая на вопросы на форуме?

elf2002 30.12.2011 20:04

Цитата:

Сообщение от рони (Сообщение 147318)
Вариант...
<div>
    <b id='id3' style="color:red;" onclick="getDoc(this)">123</b>
    <b id='id3' style="color:Fuchsia;" onclick="getDoc(this)">321</b>
</div>

<script>
function getDoc( self ) {
   var d = document.createElement('DIV');
   var s = self.cloneNode(1);
   d.appendChild(s)
alert( d.innerHTML );
}
</script>

Имеется в виду, создать временный див, впихнуть в него кликнутое и уже оттудова выдернуть код?
Довольно оригинально, конечно, хоть есть недостатки. :)
Спасибо

trikadin 30.12.2011 21:24

Цитата:

Сообщение от elf2002
Какой, однако, искристый юмор.

По выражению одного из участников форума, это программистический юмор. Привыкайте)

elf2002 30.12.2011 21:34

Цитата:

Сообщение от trikadin (Сообщение 147461)
По выражению одного из участников форума, это программистический юмор. Привыкайте)

я человек, измученный программированием. :cray:
Мне не до юмора

trikadin 30.12.2011 22:02

Цитата:

Сообщение от elf2002
я человек, измученный программированием.

Значит, вам не нужно этим заниматься)

elf2002 30.12.2011 22:28

Цитата:

Сообщение от trikadin (Сообщение 147469)
Значит, вам не нужно этим заниматься)

гы. А чем тогда?
Ну, могу еще плитку класть и дрова рубить. Дорого. :)


А по теме еще есть вопрос.
Допустим в документе есть
<b style="some_style" onclick="fff(this)">
<b style="some_style" onclick="fff(this)">
<b style="some_style" onclick="fff(this)">
аж три одинаковые.

Допустим, код "<b style="some_style" onclick="fff(this)">" мы по клику получили, когда кликнули по второму <b>.
А как узнать, какому куску текста в документе принадлежит этот код?


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