Как получить содержимое элемента вместе с самим элементом?
Есть тег
<p id="elem" class="cl">aaa</p> Его нужно сохранить в переменную. Полностью, а не одно лишь содержимое. Сейчас делаю так
var elem = $('#elem').wrap('<div/>').parent().html()
Может быть можно лучше? |
Цитата:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<p id="elem1" class="cl">id="elem1"</p>
<div id="elem2" class="cl">id="elem2" </div>
<!-- cкрытый блок хранения -->
<div id="storag" style="display:none"></div>
<script type="text/javascript">
function sav_html (selector){
var elem =$('#storag').html($(selector).clone()).html();
return elem;
}
alert(sav_html ("#elem1"));
alert(sav_html ("#elem2"));
</script>
|
Shitbox2,
Использовать родное свойство outerHTML. Поддерживается всеми современными браузерами (работает даже в ИЕ6 и 7)
<script src="http://code.jquery.com/jquery-latest.js"></script>
<p id="elem" class="cl">content for id="elem1"</p>
<script type="text/javascript">
var elem = $('#elem').get(0).outerHTML;
alert(elem);
</script>
|
Так тоже делал, только в библиотечном коде такое не прокатит, т.к. нельзя гарантировать, что будет блок хранения. Разве что, создать его, но по громоздкости будет больше чем с wrap.
|
Shitbox2,
Цитата:
мон блок задать скриптом
<script src="http://code.jquery.com/jquery-latest.js"></script>
<p id="elem1" class="cl">id="elem1"</p>
<div id="elem2" class="cl">id="elem2" </div>
<script type="text/javascript">
var a='<div id="storag" style="display:none"></div>';
$("body").append(a)
function sav_html (selector){
var elem =$('#storag').html($(selector).clone()).html();
return elem;
}
alert(sav_html ("#elem1"));
alert(sav_html ("#elem2"));
</script>
|
Действительно. Даже так работает $('#elem')[0].outerHTML И как сразу не догадался...
Цитата:
|
| Часовой пояс GMT +3, время: 23:14. |