我有什么:
<ul id="myId">
<li>
My text
<ul class="myClass">
<li>blahblahblah</li>
</ul>
</li>
</ul>
我想要的是什么:
<ul id="myId">
<li>
<span>My text</span>
<ul class="myClass">
<li>blahblahblah</li>
</ul>
</li>
</ul>
我无法访问HTML标记,我想用jQuery来做这件事, 类似的东西:
$('.myClass').get_the_text_ubove().wrap('<span>');
必须有某种方式选择“我的文字”,即使它没有课程/身份
答案 0 :(得分:6)
$($('#myId ul').addClass('myClass')[0].previousSibling).wrap('<span>');
<强> JSFIDDLE DEMO 强>
答案 1 :(得分:4)
尝试:
$('#myId > li').each(
function(){
$(this.firstChild).wrap('<span></span>');
});
关于想要将class
添加到ul
:
$('#myId > li').each(
function(){
$(this.firstChild).wrap('<span></span>');
$(this).find('ul').addClass('myClass');
});
答案 2 :(得分:3)
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);
老式的DOM救援。