2013-03-25 1 views
1

Я хочу использовать JQuery, чтобы заменить html и элемент своим. Я думал, что просто воспользуюсь:JQuery: Как совместить .contains() и .replaceWith()?

$('#nav a:contains(replace me)').replaceWith('<h2>Label</h2>'); 

но это не работает. Я пробовал много вариантов этого безрезультатно.

Кто-нибудь знает, что я делаю неправильно?

EDIT: Добавлен HTML ток:

<div id="nav"> 
<a href="#">replace me</a> 
<a href="#">this is ok</a> 
<a href="#">this is ok</a> 
<a href="#">this is ok</a> 
</div> 

То, что я хочу, чтобы это выглядело как:

<div id="nav"> 
<a href="#"><h2>Label</h2></a> 
<a href="#">this is ok</a> 
<a href="#">this is ok</a> 
<a href="#">this is ok</a> 
</div> 
+1

Сообщение текущий HTML и что вы хотели бы, чтобы посмотреть его? – adeneo

+0

@adeneo добавлено выше – MeltingDog

+1

Ваши якорные метки не закрыты должным образом, но в противном случае он работает. –

ответ

4

Я думаю, что я бы просто сделать:

$('#nav a').html(function(i, html) { 
    return $.trim(html) == 'replace me' ? '<h2>Label</h2>' : html; 
}); 

FIDDLE

, как я не очень люблю :contains или

$('#nav a:contains(replace me)').html('<h2>Label</h2>'); 

FIDDLE

в replaceWith() заменит весь якорь, а не только его содержание.

1

может быть, это поможет вам

$("div").find('a').each(function(index) 
    { 
     if(index==0){ 
     $(this).html("<h2>Label</h2>"); 
     } 

    });