【问题标题】:jQuery text split and join, does not wrap the first letterjQuery文本拆分和连接,不换行第一个字母
【发布时间】:2010-02-11 09:53:03
【问题描述】:

我有一个函数,可以从跨度文本中拆分每个字母并将其包装成一个 em。它可以工作,但跨度的第一个字母没有被换行。我怎样才能把那封信也用 em 包起来?

   <script>
    jQuery(document).ready(function(){
        $(".nsplit").live('click', function(){
        var newSplit = $("#selectable1 span.cica").text().split("").join("</em><em>");
        $("#selectable1 span.cica").html(newSplit);

    });
    });
    </script>

谢谢。

【问题讨论】:

    标签: jquery text split


    【解决方案1】:

    对于文本“Test”,初始代码:

    $("#selectable1 span.cica").text().split("")
    

    会产生一个数组 ['T','e','s','t]

    在数组上调用 join 会在每个数组项之间插入分隔符之间,因此您最终会得到:

    T</em><em>e</em><em>s</em><em>t
    

    然后,您需要用开头的 &lt;em&gt; 包裹最初的“T”,并在最后的“t”上用 &lt;/em&gt; 关闭

    【讨论】:

      【解决方案2】:

      使用window.parent,您可以获得对 iframe 父级的引用。

      您有什么想通过嵌套 iframe 来实现的吗?如果是,那么您必须使用 parent 遍历树以获得最顶层的父级。

      【讨论】:

      • 是的,我需要一些嵌套的 EM 标签。一旦他们的属性将被更改,我将删除 em 标记。我正在研究 window.parent 但我不知道如何使用它。谢谢
      【解决方案3】:

      我已将代码更改为我在 jQuery 示例中找到的代码,现在它可以工作了。我无法弄清楚为什么它第一次无法正常工作。 如果有人有同样的问题,这是新代码

        var words = $("#selectable1 span.cica").text().split("");
        var text = words.join("</em><em>");
        $("#selectable1 span.cica").html("<em>" + text + "</em>");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多