【问题标题】:jQuery how to swap each instance of "&" append <span> tag to each elementjQuery如何交换“&”的每个实例将 <span> 标签附加到每个元素
【发布时间】:2009-08-12 10:46:22
【问题描述】:

正如标题所说,

我希望能够在页面加载时搜索位于 #wrapper 中的文本。

如果有一个“&amp;”,我希望它有一个 span 标签应用于它,并附加一个类到 span。 IE: 如果找到“hello &amp; Welcome” 它最终应该像“hello &lt;span class="amp"&gt;&amp;&lt;/span&gt; Welcome”。

我确实有一些我一直在尝试的代码,但都没有工作,所以包含它毫无意义。 任何帮助都会非常感谢。

编辑:一直在与

合作
<script type="text/javascript">  
    $(document).ready(function() { 
     $("#wrapper").html( $("#wrapper").html().replace(/&amp;/g, '<span class="amp">&amp;<"+"/span>') ); 
    }); 
</script>

这会在萤火虫中加载一个错误,告诉我它不是一个函数:

$ 不是函数 $(document).ready(function() {

编辑:哎呀忘了包括我对 jQuery 的引用..

这行得通。

<script type="text/javascript">  
    $(document).ready(function() { 
       $("#wrapper").html( $("#wrapper").html().replace(/&amp;/g, '<span class="amp">&amp;<"+"/span>') ); 
    }); 
</script>

【问题讨论】:

    标签: php jquery


    【解决方案1】:

    你看过jquery.highlight吗?似乎它可以满足您的需求 - 正确的方式(仅在文本节点等中搜索)

    $("#wrapper").highlight('&');
    

    进一步的解释。想象以下场景:

     <div id='wrapper'>This &amp; should become highlighted.  
        And a picture: <img src='momanddad.jpg' alt='Mom &amp; Dad' /></div>
    

    一揽子正则表达式替换将捕获这两个 &amp;amp; 出现并返回:

     <div id='wrapper'>This <span class="amp">&amp;</span> should become highlighted.  
        And a picture: <img src='momanddad.jpg' alt='Mom <span class="amp">&amp;</span> Dad' /></div>
    

    这显然会破坏您的 img 标签。 jquery highlight 插件会避免这种情况。

    【讨论】:

    • 感谢 gnarf,但问题是,当页面加载时,我希望它现在通过特定 ID 的 html (#post) 检查它是否遇到 &它将把它包装在一个跨度标记中,并将包含的类应用于该跨度。即上述代码剂量的&
    • 我明白:但你最终也会把 变成 & Dad" /> 这不一定是您想要的 - jquery.highlight 库处理。它只查看“文本节点”
    【解决方案2】:

    为了便于阅读,我会重新考虑;

    var html = $("#wrapper").text().replace(/&/g,'<span class="amp">&</span>');
    $("#wrapper").html(html);
    

    虽然我认为这是对 DOM 的额外调用。

    【讨论】:

    • 这完全没有意义。如果您只打算使用一次变量,则没有理由设置它。
    • 你可能是对的,我只是喜欢显而易见的事情:-)
    猜你喜欢
    • 2017-11-23
    • 2017-01-16
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2019-11-17
    • 2019-10-17
    相关资源
    最近更新 更多