如何用jQuery在span标签中换行文本,除了第一个单词
How to wrap text in span tags except first word with jQuery?
是否可以将最后一个单词用span标签包装在字符串中,不包括第一个单词?例如:
var string = 'My super text';
是
My <span>super text</span>
我有这个:
var text = string.split(" ");
// drop the last word and store it in a variable
var last = text.pop();
// join the text back and if it has more than 1 word add the span tag
// to the last word
if (text.length > 0) {
return text.join(" ") + " <span>" + last + "</span>";
}
else {
return "<span>" + text.join(" ") + last + "</span>";
}
如果至少有两个span标签,则用span标签包装最后一个单词,但不确定如何修改
您只需要使用将返回第一个单词的text.shift()
,而不是返回最后一个单词的text.pop()
。这样做就容易多了
var text= string.split(" ");
// get the first word and store it in a variable
var first = text.shift();
// join the text back and if it has more than 1 word add the span tag
// to the last word
if (text.length > 0) {
return first + " <span>" + text.join(" ") + "</span>";
} else {
return "<span>" + first + "</span>";
}
您可以使用正则表达式。
text = text.replace(/'s(.*)$/, ' <span>$1</span>');
但是,您可能应该将下面的代码转换为递归函数…
$('body').contents().filter(function() {
return this.nodeType == 3;
}).each(function() {
var node = this;
// Normalise node.
node.data = $.trim(node.data);
node.data.replace(/'s+(.*)'s*$/, function(all, match, offset) {
var chunk = node.splitText(offset);
chunk.parentNode.removeChild(chunk);
var span = document.createElement('span');
span.appendChild(document.createTextNode(' ' + match));
node.parentNode.appendChild(span);
});
});
jsFiddle .
这将允许您修改文本节点和插入span
元素,而不会扰乱序列化的HTML。
var space = string.indexOf(' ');
if (space !== -1) {
return string.slice(0,space) + " <span>" + string.slice( space ) + "</span>";
} else {
return "<span>" + string + "</span>";
}
你不需要分割文本,只需要检查是否有空格,并在那里插入一个span
这段代码在第一个空格之后插入一个span,如果没有空格(idx == -1),则将span放在字符串的开头:
var idx = string.indexOf(' ');
return string.substr(0, idx + 1) + "<span>" + string.substr(idx + 1) + "</span>";
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- 文本中的 Javascript 单词突出显示
- 识别两个文本中的单词(if 语句在 for 循环中)
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 如何使钛文本区域中的单词加粗或斜体
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 如何对一块文本进行切片,使其不会'Don’不要以分裂的单词结尾
- 文本框中需要两个单词,使用AngularJS
- 使用jquery或JS查找文本区域内的所有单词位置
- 滚动文本中的顶部单词
- 如何将有角度的文本区域设置为仅以特定单词开头
- 如何使用jquery只允许文本框中的特定单词
- 如何在文本区域中获取最后一个单词的位置
- 使用PHP验证文本文件中的单词
- JS/Jquery:字符串到单词的文本分割脚本使用字典和最长匹配
- 标记文本中的几个单词
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔