简体   繁体   English

在jQuery中包含一些文本的跨度

[英]Wrap a span around 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 dont have access to the HTML markup, and am wanting to do this with jQuery, Something like : 我没有访问HTML标记,我想用jQuery做这件事,像:

$('.myClass').get_the_text_ubove().wrap('<span>');

There must be some way of selecting 'My text' even though it has no class/id 必须有一些选择“我的文本”的方法,即使它没有类/ ID

$($('#myId ul').addClass('myClass')[0].previousSibling).wrap('<span>');

JSFIDDLE DEMO

Try: 尝试:

$('#myId > li').each(
    function(){
        $(this.firstChild).wrap('<span></span>');
    });

JS Fiddle demo . JS小提琴演示

With regards to wanting to add the class to the ul : 关于想要将class添加到ul

$('#myId > li').each(
    function(){
        $(this.firstChild).wrap('<span></span>');
        $(this).find('ul').addClass('myClass');
    });

JS Fiddle demo . JS小提琴演示

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. 老式的DOM救援。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM