2015-03-12 3 views
-1

Я желаю, чтобы заменить все дивы с классом элементом-данных с атрибутом данными переменного-пункта с этим классомВ Jquery получить атрибут целевого элемента

IE:

<div class="data-item" data-variable="{{somevariable}}"> 
    Some Content 
</div> 

<div class="data-item" data-variable="{{someothervariable}}"> 
    Some Content 
</div> 

должен стать

{{somevariable}}{{someothervariable}} 

код я хочу использовать:

$("div.data-item" , el).replaceWith(get the data-variable attribute of this element); 

где el - объект jquery, содержащий html. Я хочу разобрать

+0

http://api.jquery.com/attr/ , http://api.jquery.com/data/ –

ответ

0

DEMO

$("div.data-item").each(function(){ 
    $(this).replaceWith($(this).data('variable')); 
}) 

UPD: Вы можете использовать функцию в качестве аргумента replaceWith (ТНХ @Barmar)

$('div.data-item').replaceWith(function() { 
    return $(this).data('variable'); 
}); 
+0

Спасибо, согласитесь, это помогло мне со скрипкой. – jalmen

1

Аргумент replaceWith может быть функцией. Когда он будет вызван, будет заменен элемент this. Возвращаемое значение будет использоваться в качестве замены.

$("div.data-item").replaceWith(function() { 
    return $(this).attr("data-variable"); 
}); 
+0

Спасибо, что работает так же хорошо. Удивительно, если в решениях есть разница в производительности, так как ответ на болото использует .each. – jalmen

+0

Они должны быть очень похожими. jQuery просто выполняет цикл '.each' внутри. – Barmar

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