2013-12-13 1 views
1

Возможно, я упростил свой вопрос в https://stackoverflow.com/posts/20577488/ Я пропустил важный промежуточный шаг. Я хотел:Как изменить элементы в строке html перед добавлением

  • создать строку Javascript х
  • правопреемником х к объекту JQuery
  • выполнять JQuery материал на этом объекте
  • затем добавить его

    var x = "<p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p> "; 
    var template = $(x); 
    template.find('p').attr('class','something'); 
    template.appendTo(".inner"); 
    
    (правильный термин?)

ответ

4

Вам необходимо использовать filter вместо find. То, что вы ищете, находится на корневом уровне, поэтому вам нужно использовать filter, так как find будет искать потомков p, которые находятся на корневом уровне. Также вы можете использовать addClass для добавления класса, если вы не хотите удалить существующие классы.

var x = "<p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p>"; 
var template = $(x) 
template.filter('p').attr('class','something'); 
//Or you can use 
//template.filter('p').addClass('something'); 
template.appendTo(".inner"); 

Demo

+1

Правильный ответ ... +1 – Sergio

+2

@Sergio Спасибо человек !! – PSL

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