Tips:点此可运行HTML源码

jQuery单击双击实现链接的提取、插入与删除

canrun

点击链接插入链接内容。

亮点:

  1.正则匹配<a>标签。

  2.jQuery单击添加,双击删除。

  3.textarea加入换行。

复制代码
View Code
<html>
<head>
    <title>Click to Text</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="zh-CN" />
    <script type="text/javascript" src="https://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script>
</head>
<body>
    <div id="clickContain">
        <a href="http://www.cnblogs.com">博客园</a>
        <a href="http://www.baidu.com">百度</a>
        <a href="http://www.qq.com">QQ</a>
        <a href="http://www.sina.com.cn">新浪</a>
    </div>
    <div id="textContain">
    <textarea rows="10" cols="50" def-v="单击添加,双击删除">单击添加,双击删除</textarea>
    </div>

    <script type="text/javascript">
        $(document).ready(function(){
            var textareaContain = $("#textContain textarea").eq(0);
            //单击插入链接
            $("#clickContain a").click(function(){
                var pattern = eval('/'+textareaContain.attr('def-v')+'/i');
                textareaContain.val(textareaContain.val().replace('单击添加,双击删除',''));
                if(!$(this).hasClass('lock')) {
                    var p = eval('/<a(?:.*)'+$(this).html()+'(?:.*)a>/i');
                    var addString = $(this).parent().html().match(p);    //正则提取<a>标签
                    if(!!addString) addString = addString[0]+'\n';    //正则匹配后的[0]是全部匹配的值,加入换行\n
                    textareaContain.val(textareaContain.val()+addString);
                    $(this).addClass('lock');    //阻止第二次点击
                }
                return false;
            });
            //双击删除链接
            $("#clickContain a").dblclick(function(){
                $(this).attr('class',null);        //删除整个class属性,以免出现class=""
                var p = eval('/<a(?:.*)'+$(this).html()+'(?:.*)a>(\\n*)/gi');
                textareaContain.val(textareaContain.val().replace(p,''));
                if(textareaContain.val() == '')textareaContain.val(textareaContain.attr('def-v'));
                return false;
            });
        });
    </script>
</body>
</html>
复制代码

效果图一(默认状态):

效果图二(添加链接):

效果图三(删除百度链接):

当全部链接被删除时,自动回复效果图一中的提示。

posted @   Zjmainstay  阅读(953)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示