使一些文本加粗并使其斜体

用户名

这个问题中,我得到了查找文本,将其包装并使其变粗的代码,这行得通(我使用Jahu的答案,即带有jsbin的答案)。当我将其复制到另一个文件并将其更改为斜体时,它可以工作。

但是,当我将它们都放在同一个文件中(甚至放在不同的<script>标签中)时,只会出现粗体。有人知道为什么吗?

$.fn.wrapBoldTag = function(opts) {
  // https://stackoverflow.com/a/1646618
  function getText(obj) {
    return obj.textContent ? obj.textContent : obj.innerText;
  }
  var tag = opts.tag || 'strong',
    words = opts.words || [],
    regex = RegExp(words.join('|'), 'gi'),
    replacement = '<' + tag + '>$&</' + tag + '>';

  // https://stackoverflow.com/a/298758
  $(this).contents().each(function() {
    if (this.nodeType === 3) //Node.TEXT_NODE
    {
      // https://stackoverflow.com/a/7698745
      $(this).replaceWith(getText(this).replace(regex, replacement));
    } else if (!opts.ignoreChildNodes) {
      $(this).wrapBoldTag(opts);
    }
  });
};
$('p').wrapBoldTag({
  "words": ["blue"]
});
$('p').wrapBoldTag({
  "words": ["edit"],
  "ignoreChildNodes": true
});

$.fn.wrapInTag = function(opts) {
  var tag = opts.tag || 'strong',
    words = opts.words || [],
    regex = RegExp(words.join('|'), 'gi'),
    replacement = '<' + tag + '>$&</' + tag + '>';

  return this.html(function() {
    return $(this).text().replace(regex, replacement);
  });
};
$('p').wrapInTag({
  tag: 'u',
  words: ['sky']
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>The sky is blue.</p>

菲利普

由于元素的内容已转换为文本,因此它的实现方式可防止您依次更改多个标签。

这是我所做的:

// stips out tags, which causes issues when onverting 2 tags
// return $(this).text().replace(regex, replacement);
// use the html contents of the element
return $(this).html().replace(regex, replacement);

运作方式:

$('p').wrapInTag({
  tag: 'em',
  words: ['world', 'red']
});

$('p').wrapInTag({
  tag: 'strong',
  words: ['is']
});

在此处查看工作版本:http : //jsbin.com/xamisohehi/edit?html,js,output

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果条件在列表视图上加粗一些文本

来自分类Dev

如何在pdf单元格中加粗一些文本?

来自分类Dev

如果条件在列表视图上,则将一些文本加粗

来自分类Dev

如何使用NSMutableAttributedString在UITextView中加粗一些单词?

来自分类Dev

为什么Android Studio中的一些斜体代码

来自分类Dev

无法添加粗体或斜体文本

来自分类Dev

训练一些嵌入,使其他保持固定

来自分类Dev

使用jQuery隐藏一些文本

来自分类Dev

以垂直顺序显示一些文本

来自分类Dev

在div右边浮动一些文本

来自分类Dev

php回显一些文本;

来自分类Dev

使用jQuery隐藏一些文本

来自分类Dev

从SQL检索一些文本

来自分类Dev

使用jQuery更改一些文本

来自分类Dev

sed 命令删除一些文本

来自分类Dev

在警报中添加一些文本

来自分类Dev

在视图中插入一些文本

来自分类Dev

从行中跳过一些文本

来自分类Dev

Tkinter:斜体化已加粗的文本(重叠标签)

来自分类Dev

从PHP的文本正文中捕获一些文本

来自分类Dev

notepad ++用一些文本替换文本

来自分类Dev

如何使用一些规则将一些纯文本输出转换为JSON?

来自分类Dev

ScrollView包含一些TextView,但是一些textView的文本无法显示

来自分类Dev

如何在引导行的中心放置一些文本?

来自分类常见问题

用特定格式分割一些文本

来自分类Dev

Jenkins:在构建摘要中添加一些文本

来自分类Dev

选择由一些字符分隔的完整文本块

来自分类Dev

drawInRect:withAttributes文本垂直居中或放置一些填充

来自分类Dev

一些文本被添加到JavaScript的变量中