Очень простой метод, что "переключение" ссылка:
$('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/
+1. Следует отметить, однако, что если для этих ссылок есть слушатель jQuery, '.live (« click », вместо <.click (function() {use] следует использовать функцию() {...'. потому что из-за этого: –
i я вас смутил. Я хочу, чтобы все li были привязаны и нажал кнопку li anchor. – 2010-10-06 07:21:54
@steven: Таким образом, вы хотите удалить ссылку, если она была нажата Вы не упомянули об этом в своем вопросе. Вы только что сказали, что хотите преобразовать никакие ссылки на ссылки и ссылки на ссылки без ссылок. Что вы действительно хотите? Можете ли вы прояснить? –