Javascript 在单词的前n个字符下面划线
我想在链接中的单词的前几个字符下面加下划线,类似于CSS第一个字母的工作方式,但字母数量是可变的。或者,在单词的前半部分加下划线可能会很有用。有什么方法可以相对简单地使用HTML、CSS或Javascript实现这一点 (我不是开发人员,我愿意向开发团队提供所有建议;)Javascript 在单词的前n个字符下面划线,javascript,html,css,Javascript,Html,Css,我想在链接中的单词的前几个字符下面加下划线,类似于CSS第一个字母的工作方式,但字母数量是可变的。或者,在单词的前半部分加下划线可能会很有用。有什么方法可以相对简单地使用HTML、CSS或Javascript实现这一点 (我不是开发人员,我愿意向开发团队提供所有建议;) A. a、 下划线{ 文字装饰:无; } .下划线跨度{ 颜色:绿色; 文字装饰:下划线; } var links=document.links; var-chars=3; 对于(var i=0,total=links.
A.
a、 下划线{
文字装饰:无;
}
.下划线跨度{
颜色:绿色;
文字装饰:下划线;
}
var links=document.links;
var-chars=3;
对于(var i=0,total=links.length;i-1){
var text=links[i].innerHTML;
文本=“”+
text.substring(0,字符)+
'' +
文本。子字符串(字符);
links[i].innerHTML=text;
}
}
编辑:单词
var links = document.links;
var chars = 3;
for (var i = 0, total = links.length; i < total; i++) {
if (links[i].className.indexOf('underline') > -1) {
var text = links[i].innerHTML.split(' ');
for (var p = 0, words = text.length; p < words; p++) {
text[p] = '<span>' +
text[p].substring(0, chars) +
'</span>' +
text[p].substring(chars);
}
links[i].innerHTML = text.join(' ');
}
}
var links=document.links;
var-chars=3;
对于(var i=0,total=links.length;i-1){
var text=links[i].innerHTML.split(“”);
对于(var p=0,words=text.length;p
编辑:作为一项功能
var links = document.links;
var chars = 2;
for (var i = 0, total = links.length; i < total; i++) {
if (links[i].className.indexOf('underline') > -1) {
setUnderline(links[i], chars);
}
}
function setUnderline(link, chars) {
var text = link.innerHTML.split(' ');
for (var p = 0, words = text.length; p < words; p++) {
text[p] = '<span>' +
text[p].substring(0, chars) +
'</span>' +
text[p].substring(chars);
}
link.innerHTML = text.join(' ');
}
var links=document.links;
var-chars=2;
对于(var i=0,total=links.length;i-1){
设置下划线(链接[i],字符);
}
}
函数setUnderline(链接、字符){
var text=link.innerHTML.split(“”);
对于(var p=0,words=text.length;p
我不确定您是要替换链接中的前N个字母,还是替换链接中每个单词的前N个字母。如果是后者,请尝试替换正则表达式
new RegExp("\b\w{1," + N + "}", "g")
使用适当的替换件,如
function(a) { return "<u>" + a + "</u>"; }
函数(a){return”“+a+”;}
下面是一个例子:
你可以简单地把和#818
在任何单词后面加下划线,都是HTML代码
它变成:
终点
但是,您可以创建一个JavaScript函数来为您执行此操作,请参见:
function underlineWord(pos,str){
str = str.substring(0,pos) + str[pos] + "̲" + str.substring(pos+1,str.length);
return str;
}
这样,如果执行:
underlineWord(0,"string");
你将有:
s̲tringVanilla JS或lib会像jQuery/mooTools那样工作吗?为什么“开发团队”不在工作?这是一个交互概念,我想在占用宝贵的开发人员时间之前进行评估。(并不意味着你的时间没有价值…)只是要知道这是一个不寻常的陈述,但不一定是一个与潜在问题相关的问题。见我的答案@RussBB我想我得到了你想要的汉克斯·贾里德,很接近,但实际上,我希望找到一种方法,在链接中每个单词的前n个字母下面划线。请参见编辑。注:必须围绕规范设计更完整的解决方案;对于概念验证,这应该有效。它不一定是最复杂的请求,这取决于它必须处理的实际HTML。jQuery也会让它更直截了当。非常感谢。所以这是可行的,这就是我想要的。我将按照您的建议查询jQuery。这在jQuery中也是一样的:选择部分主要是简化。注意,此示例实际上将使用
$.text()
从标记中删除标记。
underlineWord(0,"string");