Wrap some text in jQuery
What I have:
<ul id="myId">
<li>
My text
<ul class="myClass">
<li>blahblahblah</li>
</ul>
</li>
</ul>
What I want:
<ul id="myId">
<li>
<span>My text</span>
<ul class="myClass">
<li>blahblahblah</li>
</ul>
</li>
</ul>
I don't have access to the HTML markup, and I want to do it using jQuery, Something like:
$('.myClass').get_the_text_ubove().wrap('<span>');
There must be some way to select "My text", although it does not have a class / id
+5
3 answers
var ul = document.getElementById("myId");
var li = ul.firstElementChild;
var text = li.firstChild;
var ul = li.childNodes[1];
ul.classList.add('myClass');
var span = document.createElement("span");
span.textContent = text.data;
li.replaceChild(span, text);
Old fashioned DOM to the rescue.
+3