2014-02-05 2 views
0

Я пытаюсь изменить все dd с определенным текстом, в этом примере «цвет» от dd до элементов dt.Замена элемента конкретным текстом

<dl> 
    <dd><a>color</a></dd> 
    <dd><a>green</a></dd> 
    <dd><a>blue</a></dd> 
    </dl> 

    <dl> 
    <dd><a>color</a></dd> 
    <dd><a>red</a></dd> 
    <dd><a>orange</a></dd> 
    </dl> 

Что было бы лучшим способом сделать это?

Благодаря

+0

Выберите элементы, и изменить их текст. Какая часть вас беспокоит? – meagar

ответ

0
$('dd').each(function() { 
    if ($.trim($(this).text()) == 'color') 
     $(this).replaceWith($('<dt>' + this.innerHTML + '</dt>')); 
}); 

FIDDLE

1

Попробуйте использовать обертку()/разворачивать()

$('dl dd').filter(function(){ 
    return $.trim($(this).text()) == 'color' 
}).wrapInner('<dt />').contents().unwrap() 

Демо: Fiddle

+0

Как насчет http://api.jquery.com/contains-selector/? –

+0

@onetrickpony выполняет частичный поиск, так что если другой элемент содержит текст 'red-color', он будет соответствовать': contains' –

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