2016-12-25 2 views
0

Как создать ссылки на основе приведенных ниже списков и изменить их из списков в ссылки по Javascript.Изменить класс li через js, чтобы стать ссылками

<li class="navigation">LOVE</li> 
<li class="navigation">HATE</li> 
<li class="navigation">LIFE</li> 

должны стать:

<li class="navigation><a href="#LOVE">LOVE</a></li> 
... 
+0

Ссылки на что? Вы должны быть более конкретными. – BenM

+0

Как вы оказались в ситуации, когда вам нужно было это сделать? Кроме того, где вы застряли? Поиск элементов LI? Зацикливаясь над ними? найти их содержание? Создание замещающего контента? –

ответ

-1
$('li.navigation').each(function(index,element){ 
    var me = $(this); 
    $(element).replace(function(){ 
    return "<a href='your reference here'>"+me.text+"</a>" 
    }) 
}) 
2

Без JQuery:

function makeLinks(ul) { 
 
    for (i of document.querySelectorAll(ul + " > li")) { 
 
    var t = i.innerHTML; 
 
    i.innerHTML = "<a href='" + t.toLowerCase() + "'>" + t + "</a>"; 
 
    } 
 
} 
 

 
makeLinks("#menu");
<ul id="menu"> 
 
    <li class="navigation">LOVE</li> 
 
    <li class="navigation">HATE</li> 
 
    <li class="navigation">LIFE</li> 
 
</ul>

1

Как я не вижу JQuery тег, здесь решение с использованием простого javascript.

Чтобы перебрать все li с помощью querySelectorAll() и заменить каждую textContent с заданными узлами:

liAll = document.querySelectorAll('li'); 
 
liAll.forEach(function(elt) { 
 
    txt = elt.textContent; 
 
    link = document.createElement('a'); 
 
    atxt = document.createTextNode(txt); 
 
    link.appendChild(atxt); 
 
    link.setAttribute('href', '#' + txt); 
 
    elt.appendChild(link); 
 
    elt.firstChild.remove(); 
 
});
<li class="navigation">LOVE</li> 
 
<li class="navigation">HATE</li> 
 
<li class="navigation">LIFE</li>

+0

Зачем вам не использовать 'replaceChild'? –

+0

@torazaburo Я не уверен, что могу использовать 'replaceChild()' в строке. – SLePort

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