2010-10-06 5 views
3

У меня есть ul:как удалить Якорь и назначить якорь в HTML

<ul> 
    <li>1</li> 
    <li><a href="#">2</a></li> 
</ul> 

мне нужна вещь, которую я хочу сделать первый Ли якорь средства

<li>1</li> 

в

<li><a href="#">1</li></li>` 

и снять анкер со второго средства

<li><a href="#">2</a></li> to <li>2</li> 

Как это сделать в jQuery?

ответ

2

Очень простой метод, что "переключение" ссылка:

$('ul li').each(function() { 
    if($(this).find('a').length > 0) { 
     $(this).text($(this).text()); 
    } 
    else { 
     $(this).html($('<a />').attr('href', '#').text($(this).text())); 
    } 
}); 

Пример: http://jsfiddle.net/E2ryt/

Update:

Вашего комментария Я думаю, что вы хотите:

$('ul li').each(function() { 
    $(this).html($('<a />').attr('href', '#').text($(this).text())); 
}).click(function() { 
    $(this).text($(this).text()); 
}); 

Но я «Не уверен на 100%. Смотрите здесь: http://jsfiddle.net/E2ryt/1/

Update 2:

Основываясь на комментарий Дэвида, вы можете захотеть этого:

var lastClicked = null; 

$('ul li').click(function() { 
    if(lastClicked) { 
     lastClicked.html($('<a />').attr('href', '#').text(lastClicked.text())); 
    } 
    lastClicked = $(this).text($(this).text()); 
}); 

Смотрите здесь: http://jsfiddle.net/E2ryt/2/

+0

+1. Следует отметить, однако, что если для этих ссылок есть слушатель jQuery, '.live (« click », вместо <.click (function() {use] следует использовать функцию() {...'. потому что из-за этого: –

+0

i я вас смутил. Я хочу, чтобы все li были привязаны и нажал кнопку li anchor. – 2010-10-06 07:21:54

+0

@steven: Таким образом, вы хотите удалить ссылку, если она была нажата Вы не упомянули об этом в своем вопросе. Вы только что сказали, что хотите преобразовать никакие ссылки на ссылки и ссылки на ссылки без ссылок. Что вы действительно хотите? Можете ли вы прояснить? –

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