【问题标题】:jquery change text to hyperlink through all Div tagsjquery通过所有Div标签将文本更改为超链接
【发布时间】:2015-11-19 22:02:53
【问题描述】:

我有页面说

<div class="wrapper" id="checkLink">
    <div name="something">
       <div name="something">
          <bean:write name="" property=""/>
       </div>
    </div>
    <div name="something">
       <div name="something">
           <div name="something">
                 <bean:write name="" property=""/>
           </div>
       </div>
       </div>
    </div>

如果“checkLink” div 中的任何文本以 http/https/www 开头,我想将其更改为超链接

数据来自后端,由最终用户输入......有90多个字段(其中任何人都可以是超链接)

只有匹配的值才能显示为超链接

如何将它们转换为超链接?

【问题讨论】:

  • 您的示例中没有文本,只有 div。
  • 我怀疑单独的 jQuery 不会有这个功能。听起来您需要针对 DOM 中每个已识别的“节点”解析其中的所有文本以找到匹配的字符串并根据这些字符串进行拆分。然后用a元素替换匹配的字符串,并从拆分的字符串和新的a元素重新构造节点的整体内容。 (如果已经有一个 jQuery 插件可以完全或非常相似地做这件事,我也不会感到惊讶。)
  • @Heru-Luin 更新了示例 :)
  • 您的代码中仍然没有文本。你能举个例子说明它最终应该是什么样子吗?
  • 假设这是我页面中的文本: WTC Event Bean RNAME : text WTC Event Details RNAME : www.google.com WTC PI Bean RNAME : test1 DUCS (CSI) : test UQ (LB) : www.hhh.com UQ(LB) 和 WTC Event Details RNAME 的文本应以超链接形式出现在页面上

标签: javascript jquery html hyperlink


【解决方案1】:

https://jsfiddle.net/w033ucrm/1/

var divs = $('#checkLink div');
$.each(divs, function(index, div){
    var target = $(div).attr('name');
   $('body').append('<a href="http://www'+target+'">'+target+'</a><br/>'); 
});

你也可以使用$(div).replaceWith(),但使用嵌套的 div 你只会得到 2 个锚

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多