Помогите с jquery

12
J
На сайте с 08.06.2006
Offline
844
780

Есть код


<div id="menu">
<li id="/cat/1.html">кат 1</li>
<li id="/cat/2.html">кат 2</li>
<li id="/cat/3.html">кат 3</li>
</div>

Средствами jquery в реале нужно получить


<div id="menu">
<a href="/cat/1.html">кат 1</a>
<a href="/cat/2.html">кат 2</a>
<a href="/cat/3.html">кат 3</a>
</div>

Пробовал так


$(document).ready(function(){
$("#menu").html().replace("<li>","<a");
});

И так соответственно для каждого элемента.

Пробовал и text().replace

Ничего не выходит. Что не так делаю?

izbushka
На сайте с 08.06.2007
Offline
110
#1

$(document).ready(function(){

$("#menu li").each(function() { $(this).replaceWith(( "<a>" + $(this).text() + "</a>" ); });

А вообще ваш изначальный код невалидный.. Исправляйте

J
На сайте с 08.06.2006
Offline
844
#2
izbushka:
$(document).ready(function(){
$("#menu li").each(function() { $(this).replaceWith(( "<a>" + $(this).text() + "</a>" ); });

Разве так будет работать?

Вы не учли, что еще

joost:
И так соответственно для каждого элемента.

есть еще

 $(document).ready(function(){

$("#menu").html().replace("</li>","</a>");
});

и

 $(document).ready(function(){

$("#menu").html().replace("id","href");
});
izbushka
На сайте с 08.06.2007
Offline
110
#3

Да, про id забыл, но в остальном все должно

$("#menu li").each(function() { $(this).replaceWith( "<a href='"+$(this).attr('id')+"'>" + $(this).text() + "</a>" ); });

Или что значит для каждого элемента? Я использую each

ADD: burunduk, :p

[Удален]
#4

как-то так

$("#menu li").each(function(){
$(this).replaceWith("<a href='" + $(this).attr("id") + "'>" +$(this).text() + "</a>");
});



---------- Добавлено 09.04.2013 в 14:01 ----------

izbushka, опередил :)

J
На сайте с 08.06.2006
Offline
844
#5

izbushka, спасибо!

burunduk, отдельное большое спасибо!

ПРОБЛЕМА РЕШЕНА!

J
На сайте с 08.06.2006
Offline
844
#6

по ряду причин в js файлах пришлось сменить $ на jQuery

и


$("#menu li").each(function(){
$(this).replaceWith("<a href='" + $(this).attr("id") + "'>" +$(this).text() + "</a>");
});

заменив на

jQuery("#menu li").each(function(){
jQuery(this).replaceWith("<a href='" + jQuery(this).attr("id") + "'>" +jQuery(this).text() + "</a>");
});

перестало работать

в чем может быть причина?

[Удален]
#7
joost:
в чем может быть причина?

наверно в подключении ещё одной библиотеки?

J
На сайте с 08.06.2006
Offline
844
#8
burunduk:
наверно в подключении ещё одной библиотеки?

а какой?

jquery-1.8.2.min.js подключена

[Удален]
#9
joost:
jquery-1.8.2.min.js подключена

а больше ни чего?

J
На сайте с 08.06.2006
Offline
844
#10
burunduk:
а больше ни чего?

других нет

а какие еще?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий