Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как взять html() сам объект на который вешаем (https://javascript.ru/forum/jquery/35402-kak-vzyat-html-sam-obekt-na-kotoryjj-veshaem.html)

danik.js 10.02.2013 12:20

Цитата:

Сообщение от qwermjk
Почему то не сработало!!! в опере

Да ладно? А это наверное - фотошоп?

danik.js 10.02.2013 12:24

Цитата:

Сообщение от qwermjk
а вот без дополнительного дива нельзя

new XMLSerializer().serializeToString($('#qqq')[0]);
Ессессно, не кроссбраузерно.

qwermjk 10.02.2013 13:10

Цитата:

Сообщение от danik.js
Да ладно? А это наверное - фотошоп?

Версия:
12.13
Сборка:
1734
Платформа:
Win32
Система:
Windows 7

qwermjk 10.02.2013 13:13

Цитата:

Сообщение от danik.js
Ессессно, не кроссбраузерно.

Нее, не кросс браузерно не пойдёт!!
да ладно, я уже через массив загнал нужные данные которые в родительском теге храняться и в переменную их записал!!
Не хотел конечно же так делать, так как забуду обновить, если ещё что то в тег добавлю!
выглядит примерно так
for(i=0; i<chat_mas.length; i++){
		text_mas += '<div class="chat_user" iduser="'+chat_mas[i][0]+'" percent="'+chat_mas[i][1]+'" status="'+chat_mas[i][2]+'">'+chat_mas[i][3]+'</div>';
	}

danik.js 10.02.2013 13:56

qwermjk, все тоже самое. Только винда у меня 64битная, но в about инфа таже самя (включая Платформа: Win32)

Цитата:

Сообщение от qwermjk
Нее, не кросс браузерно не пойдёт!!

А вот так будет кроссбраузерно и быстро (и даже без jQuery :) ):
<div id="test" class="hello">Inner Text</div>
<script>
    var html = test.outerHTML || new XMLSerializer().serializeToString(test);
    alert(html);
</script>

Deff 10.02.2013 15:18

Цитата:

Сообщение от qwermjk
а вот без дополнительного дива нельзя?

<!DOCTYPE HTML>
<html>
<head>
  <title></title>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id='qqq'><span>123</span></div>


<script type="text/javascript">
var ReturnThisHTML = (function( b ){
    return function(obj) {
        b.innerHTML="";
        b.appendChild(obj);
        return b.innerHTML;
    }
})( document.createElement( 'b' ) );
alert(ReturnThisHTML( $('#qqq').clone().get(0)) )
alert(ReturnThisHTML( $('#qqq').find('span').clone().get(0)) )
</script>

</body>
</html>


<script src="http://yandex.st/jquery/1.9.1/jquery.min.js"></script>
<div class="xxx">asfasdddf</div>
<script>
var ReturnOuterHTML = (function( b ){
    return function(obj) {
        b.innerHTML="";
        b.appendChild(obj.clone()[0]);
        return b.innerHTML;
    }
})( document.createElement( 'b' ) );

$.fn.ohtml = function(){
    return ReturnOuterHTML(this);
}
 
alert($('.xxx').ohtml());
</script>

danik.js 10.02.2013 15:32

Deff, ну ты и фокусник. А если несколько раз вызывать?

Deff 10.02.2013 16:40

danik.js,
Объект создаётся единожды
Поправил


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