找到一个字符,然后使用jQuery在其前面插入HTML标记

时间:2014-08-20 20:54:15

标签: javascript jquery html

我有一些使用此标记显示的文本,遗憾的是我无法更改

<a class="bt" href="#url">Leadership in Education (29 Oct - 31 Oct 2014)</a>

我想在<br />之前添加{{1}}(以便日期显示在新行上

我该如何做到这一点?

这是我一直在尝试但不知道如何执行我想要实现的目标:

http://jsfiddle.net/w6gp2af3/

5 个答案:

答案 0 :(得分:5)

$("a:contains('(')").html(function () {
    return $(this).html().replace(" (", "<br />("); 
});

<强> jsFiddle example

答案 1 :(得分:2)

jQuery选择DOM元素。一堆文本不是DOM元素,因此您需要将其视为字符串,并使用string.replace(或regex)将BR插入所需的位置。

您可以使用jQuery选择包装元素。其余的是字符串操作。

答案 2 :(得分:1)

您不希望为页面上的每个a元素执行此操作,因此我建议您在适当的位置为下面的代码添加选择器。

以下代码使用您的选择器,并将(替换为<br>(。非常简单。

$( "a:contains('(')" ).each(function() {
    jQuery(this).html( jQuery(this).html().replace('(', '<br>(') );
});

答案 3 :(得分:1)

您可以使用正则表达式用<br/>(替换打开的paren。见小提琴:

http://jsfiddle.net/w6gp2af3/2/

答案 4 :(得分:1)

快速简便(这适用于您网页上的所有主页,只要它们每个只有一个左括号...):

$( "a:contains('(')" ).css( "text-decoration", "underline" ).each(function(){
    $(this).html($(this).html().replace("(","<br/>("));
});

http://jsfiddle.net/hajx6ffz/