Javascript 避免为html标签元素中的相同hashtag使用空包装

Javascript 避免为html标签元素中的相同hashtag使用空包装,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,我已经创建了自定义Javascript/JQuery代码来查找html标签中出现的字符串中的hashtag。我将突出显示这些hashtag并在其周围添加包装器。但是,如果相同的标签字符串显示在2个标签中,则会在标签前面添加一个奇怪的空包装,并显示在标签内容中。如何避免空包装,这是搜索hashtag字符串的好主意还是会导致站点加载速度加快 下面是我将hashtag拆分为字符串并在其周围添加包装器的代码: $(document).ready(function(event){ $status_

我已经创建了自定义Javascript/JQuery代码来查找html标签中出现的字符串中的hashtag。我将突出显示这些hashtag并在其周围添加包装器。但是,如果相同的标签字符串显示在2个标签中,则会在标签前面添加一个奇怪的空包装,并显示在标签内容中。如何避免空包装,这是搜索hashtag字符串的好主意还是会导致站点加载速度加快

下面是我将hashtag拆分为字符串并在其周围添加包装器的代码:

$(document).ready(function(event){
    $status_hash = $('.hashtag').text();

    var tagslistarr = $status_hash.split(' ');
    var arr=[];
    $.each(tagslistarr,function(i,val){
        if(tagslistarr[i].indexOf('#') == 0){
          arr.push(tagslistarr[i]);  
        }
    });

    for($x=0; $x<=arr.length;$x++){
        $(".hashtag:contains('"+arr[$x]+"')").html(function(_, html) {
        return html.split(arr[$x]).join("<a href='#' class='smallcaps' style='text-decoration:none; background-color:rgba(113, 162, 252, 0.63); color:white; padding:2px 4px 2px 4px; border-radius:2px;'>"+arr[$x]+"</a>");
        });
    }
});
$(文档).ready(函数(事件){
$status_hash=$('.hashtag').text();
var tagslistar=$status\u hash.split(“”);
var-arr=[];
$。每个(tagslistarr,函数(i,val){
if(tagslistar[i].indexOf('#')==0){
arr.push(Tagslistar[i]);
}
});
对于($x=0;$x尝试

$(“.hashtag”).map(函数(i,el){
$(el).html(函数(\ux,html){
返回html.replace(/(#\w+)/g,函数(匹配){
返回“”
})
})
});
JSFIDLE

请参阅,试试看

$(".hashtag").map(function(i, el) {
    $(el).html(function(_, html) {
        return html.replace(/(#\w+)/g, function(match) {
          return "<a href=# class=smallcaps "
          + "style=text-decoration:none;"
          + "background-color:rgba(113,162,252,0.63);"
          + "color:white;padding:2px 4px 2px 4px;"
          + "border-radius:2px;>" + match + "</a>"
        })
    })
});
$(“.hashtag”).map(函数(i,el){
$(el).html(函数(\ux,html){
返回html.replace(/(#\w+)/g,函数(匹配){
返回“”
})
})
});
JSFIDLE

请参阅,试试看

$(".hashtag").map(function(i, el) {
    $(el).html(function(_, html) {
        return html.replace(/(#\w+)/g, function(match) {
          return "<a href=# class=smallcaps "
          + "style=text-decoration:none;"
          + "background-color:rgba(113,162,252,0.63);"
          + "color:white;padding:2px 4px 2px 4px;"
          + "border-radius:2px;>" + match + "</a>"
        })
    })
});
$(“.hashtag”).map(函数(i,el){
$(el).html(函数(\ux,html){
返回html.replace(/(#\w+)/g,函数(匹配){
返回“”
})
})
});
JSFIDLE

请参阅,试试看

$(".hashtag").map(function(i, el) {
    $(el).html(function(_, html) {
        return html.replace(/(#\w+)/g, function(match) {
          return "<a href=# class=smallcaps "
          + "style=text-decoration:none;"
          + "background-color:rgba(113,162,252,0.63);"
          + "color:white;padding:2px 4px 2px 4px;"
          + "border-radius:2px;>" + match + "</a>"
        })
    })
});
$(“.hashtag”).map(函数(i,el){
$(el).html(函数(\ux,html){
返回html.replace(/(#\w+)/g,函数(匹配){
返回“”
})
})
});
JSFIDLE


请参阅,

您可能不需要太多操作来完成这种包装或仅提取哈希标记

要获取哈希标记,可以使用以下一行程序:

var arr = $.grep( $('.hashtag').text().split(' '), function( v, i ) {
    return v.charAt(0) === '#';
});
但是,如果您只想包装标签,那么下面是代码:

$(document).ready(function(event){
    $('.hashtag').html(function(_,html) {
        return html.replace(/(\#[a-z]+)/gi, function(x) {
            return "<a href='#' class='smallcaps' style='text-decoration:none; background-color:rgba(113, 162, 252, 0.63); color:white; padding:2px 4px 2px 4px; border-radius:2px;'>" + x + "</a>";
        });
    });
});
$(文档).ready(函数(事件){
$('.hashtag').html(函数(\ux,html){
返回html.replace(/(\\\[a-z]+)/gi,函数(x){
返回“”;
});
});
});

您可能不需要太多操作来完成这种包装,或者只需要提取哈希标记

要获取哈希标记,可以使用以下一行程序:

var arr = $.grep( $('.hashtag').text().split(' '), function( v, i ) {
    return v.charAt(0) === '#';
});
但是,如果您只想包装标签,那么下面是代码:

$(document).ready(function(event){
    $('.hashtag').html(function(_,html) {
        return html.replace(/(\#[a-z]+)/gi, function(x) {
            return "<a href='#' class='smallcaps' style='text-decoration:none; background-color:rgba(113, 162, 252, 0.63); color:white; padding:2px 4px 2px 4px; border-radius:2px;'>" + x + "</a>";
        });
    });
});
$(文档).ready(函数(事件){
$('.hashtag').html(函数(\ux,html){
返回html.replace(/(\\\[a-z]+)/gi,函数(x){
返回“”;
});
});
});

您可能不需要太多操作来完成这种包装,或者只需要提取哈希标记

要获取哈希标记,可以使用以下一行程序:

var arr = $.grep( $('.hashtag').text().split(' '), function( v, i ) {
    return v.charAt(0) === '#';
});
但是,如果您只想包装标签,那么下面是代码:

$(document).ready(function(event){
    $('.hashtag').html(function(_,html) {
        return html.replace(/(\#[a-z]+)/gi, function(x) {
            return "<a href='#' class='smallcaps' style='text-decoration:none; background-color:rgba(113, 162, 252, 0.63); color:white; padding:2px 4px 2px 4px; border-radius:2px;'>" + x + "</a>";
        });
    });
});
$(文档).ready(函数(事件){
$('.hashtag').html(函数(\ux,html){
返回html.replace(/(\\\[a-z]+)/gi,函数(x){
返回“”;
});
});
});

您可能不需要太多操作来完成这种包装,或者只需要提取哈希标记

要获取哈希标记,可以使用以下一行程序:

var arr = $.grep( $('.hashtag').text().split(' '), function( v, i ) {
    return v.charAt(0) === '#';
});
但是,如果您只想包装标签,那么下面是代码:

$(document).ready(function(event){
    $('.hashtag').html(function(_,html) {
        return html.replace(/(\#[a-z]+)/gi, function(x) {
            return "<a href='#' class='smallcaps' style='text-decoration:none; background-color:rgba(113, 162, 252, 0.63); color:white; padding:2px 4px 2px 4px; border-radius:2px;'>" + x + "</a>";
        });
    });
});
$(文档).ready(函数(事件){
$('.hashtag').html(函数(\ux,html){
返回html.replace(/(\\\[a-z]+)/gi,函数(x){
返回“”;
});
});
});

…如果相同的标签字符串显示在两个标签中….!你是什么意思?你能给出一个例子吗?可以在问题中包含
html
?是否要求将所有以
#
开头的文本用
a
元素包含
目标,或者
#hastag
目标?彼得卡我在底部给出了JSFIDLE示例在代码片段中..@guest271314我正在使用CI,我想添加包装器,并在
html标签
元素中突出显示带有
a
元素的hashtag元素。因此,我可以将
a
元素目标交给我的控制器,以搜索特定的
标记文本。快速“清理”,而不尝试不附加元素?可以在原始帖子的jsfiddle中包含
html
…如果两个标签中显示相同的hashtag字符串….!你是什么意思?你能举个例子吗?可以在问题中包含
html
?是否要求将所有以
开头的文本用
a
元素包含
#
target,或
#hastag
target?@PeterKA我在代码段的底部给出了JSfiddle示例。@guest271314我正在使用CI,我想添加包装器,并在
html标签
元素中突出显示带有
a
元素的hashtag元素。因此,我可以给我的控制器一个
a
元素目标来搜索特定的
#
标记文本。快速“清理”,而不尝试不附加元素?可以在原始帖子的jsfiddle中包含
html
…如果两个标签中显示相同的hashtag字符串….!你是什么意思?你能举个例子吗?可以在问题中包含
html
?是否要求将所有以
开头的文本用
a
元素包含
#
target,或
#hastag
target?@PeterKA我在代码段的底部给出了JSfiddle示例。@guest271314我正在使用CI,我想添加包装器,并在
html标签
元素中突出显示带有
a
元素的hashtag元素。因此,我可以给我的控制器一个
a
元素目标来搜索特定的
#
标记文本。快速“清理”,而不尝试不附加元素?可以在原始帖子的jsfiddle中包含
html
。…如果相同的标签字符串显示在两个标签中…!你的意思是什么?你能举个例子吗?可以在问题中包含
html
?是否要求用
a
包装所有以
开头的文本