2013-11-07 7 views
1

Я использую jQuery для добавления содержимого в каждый класс contentx.JQuery: удалить класс, а не дочерний контент

<div id="sidebar"> 
    <div class="contentx"></div> 
    <div class="contentx"></div> 
    </div> 
    <script> 
    $("#sidebar .contentx").each(function() 
    { 
    //Append here 
    } 
</script> 

После Append у меня есть, например:

<div id="sidebar"> 
    <div class="contentx"> 
     something 1 is inserted here. 
    </div> 
    <div class="contentx"> 
     something 2 is inserted here. 
    </div> 
    </div> 

, но я хочу, чтобы удалить класс = "contentx", когда содержимое добавляется. Это означает, что я только:

<div id="sidebar"> 
something 1 is inserted here. 
something 2 is inserted here. 
</div> 

Как

ответ

3

Вариант 1

Если вы просто хотите, чтобы удалить класс «contentX» из DIV после добавления содержимого, вы можете попробовать следующее:

$('#sidebar .contextX').each(function() { 
    // Append here. 
}).removeClass('contextX'); 

EDIT: Кажется, я неправильно вопрос немного (на основе ваших указанного желаемых результатов).

Вариант 2

Если вы хотите, чтобы удалить весь элемент и заменить его с содержанием вашего выбора? Для этого, вы можете попробовать:

$('#sidebar .contextX').each(function() { 
    $(this).replaceWith('<new content here.>'); 
}); 

jQuery replaceWith

+0

Это может удалить только класс. Я хочу удалить все div, которые имеют этот класс. Например.

content
. Это означает, что после добавления и удаления div у меня всего лишь
content
. Вы понимаете мое намерение? –

+0

Спасибо за ваше предложение с заменой –

1

Кроме Append, вызовите removeClass

$("#sidebar .contentx").each(function() 
{ 
//Append here 
    $(this).removeClass('contentx'); 
} 
1

Попробуйте

var tmp = $(".contentx").html();  
$('.contentx').append(tmp);  
var tmp2 = $(".contentx").html(); 
$('.contentx').remove(); 
$('#sidebar').append(tmp2); 
+0

Просто как $ ("#sidebar .contextX") .replaceWith (function() { return $ (this) .contents(); }); –

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