2008-11-28 5 views
7

Учитывая набор результатов jQuery, как вы преобразовываете это обратно в простой HTML?Преобразование набора jQuery в HTML

<div class="abc"> 
    foo <strong>FOO</strong> 
</div> 
<div class="def"> 
    bar 
</div> 

-

var $mySet = $('div'); 

Учитывая $mySet, как бы вы о возвращении в обычный HTML выше?

ответ

4

Если множество состоит ровно из одного элемента, вы можете использовать Ye Olde Javascript:

var html = $mySet[0].outerHTML; // note HTML is all caps... that always burns me 
0
var $mySet = $('div'); 
var html = $mySet.html(); 

Если вы хотите HTML элемента, а также (непроверенные):

var $mySet = $('div'); 
var html = $mySet.clone().wrap('<div></div>').html(); 

Кстати, здесь $ является частью имени переменной. Javascript не требует $, как в PHP, для имен переменных, но это не повредит.

+1

, что это неправильно жаль. это просто вернет внутренний HTML первого div. я действительно хочу, чтобы он вернулся в HTML, как в первом примере выше. – nickf 2008-11-28 05:36:23

+0

Попробуйте мой второй фрагмент. – strager 2008-11-28 06:25:07

0

Использование метода jQuery appendTo, если я хорошо понимаю, что вы подразумеваете под «возвратом к простому HTML выше».

11

я бы предложил создать временный контейнер, а затем захватывая html() этого нового контейнера:

var html = $('<div>').append($('div').clone()).html(); 
alert(html); 

// alerts: 

<div class="abc"> 
    foo <strong>FOO</strong> 
</div><div class="def"> 
    bar 
</div> 
1

может быть, что вы хотите это шаблонный движок на стороне клиента. проверить сообщение Client Templating with jQuery

Я использую его, и это довольно круто. Вы только что установили шаблон, который хотите использовать внутри div, тогда вы будете кормить его с помощью json object/array и все.

Смежные вопросы