如何有针对性的信的JavaScript

问题描述:

我在HTML中有这样的加保证金如何有针对性的信的JavaScript

<div id="content"> 
    <h1 class="entry-title">"Homepage SlideShow"</h1> 
</div> 

我也有这个在JS

var content = document.getElementById("content"); 

var entryTitle = content.getElementsByClassName('entry-title')[0]; 
     var str = entryTitle.innerHTML; 
     var newTitle = ""; 
     for (var i = 0; i < str.length; i++) { 
     if (str[i] == 'e') { 
      newTitle += str.charAt(i).fontcolor("red"); 
     } 
     else { 
      newTitle += str[i]; 
     } 
    } 
    entryTitle.innerHTML = newTitle; 

我增加了一个颜色上的目标信,但我没有一个想法如何添加保证金。我想在目标信函上添加保证金,例如margin = -20px;。我是JavaScript的新手,我希望有人能帮忙。由于

这里是我的JSFiddle

编辑:

我有这样的字体不好看的字母间距。我不想在我的html中使用span类,因为我不想在每一个页面或手稿上手动执行。

例如:我想将所有i移动到左边,因为它在任何字中都有相同的间距。

enter image description here enter image description here

+0

像这样的事情? http://jsfiddle.net/rvchwn6a/使用'margin:-20px;'似乎有点极端,因为它会弄乱这封信,但我已经按照你的要求去做了。 – NewToJS

+0

你想把*样式*设置为“第n”字吗?如果是这样,也许你可以查看这篇文章https://css-tricks.com/a-call-for-nth-everything/ TL; DR:':: nnth-word'来设计第n个单词 – josec89

追加一些span element.Then使用内联styleclass名称与CSS

var entryTitle = document.getElementsByClassName('entry-title')[0]; 
 
var str = entryTitle.innerHTML; 
 
var newTitle = ""; 
 
for (var i = 0; i < str.length; i++) { 
 
    if (str[i] == 'e') { 
 
    newTitle += '<span class="add">' + str[i] + '</span>' 
 
    } else { 
 
    newTitle += str[i]; 
 
    } 
 
} 
 
entryTitle.innerHTML = newTitle;
.add{ 
 
/*add your style here*/ 
 
color:red; 
 
margin:-20px; 
 
}
<h1 class="entry-title">"Homepage SlideShow"</h1>

+0

感谢您的快速回答!你有任何有关''+ str [i] +''的文档吗? –

+0

它与html元素的创建者相同,用于连接字符串和变量的'+'。引用此线程['追加字符串和varibale'](https://stackoverflow.com/questions/1288095/append-to-string-变量)和[span](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjhn4WzoJXUAhXGK48KHRt3CX8QFggmMAA&url=https%3A%2F%2Fwww.w3schools .com%2Ftags%2Ftag_span.asp&usg = AFQjCNH7spvEYDZS2_kefeKwAAYf2EpXIA&sig2 = RoWXHKtCJfRuXR-NsRPl6A) – prasanth

+0

@prased cool!谢谢! –

var content = document.getElementById("content"); 
 

 
var entryTitle = content.getElementsByClassName('entry-title')[0]; 
 
var str = entryTitle.innerHTML; 
 
var newTitle = ""; 
 
for (var i = 0; i < str.length; i++) { 
 
    if (str[i] == 'e') { 
 
    newTitle += "<span style='margin: 20px;'>" + str.charAt(i).fontcolor("red") + "</span>"; 
 
    } else { 
 
    newTitle += str[i]; 
 
    } 
 
} 
 
entryTitle.innerHTML = newTitle;
<div id="content"> 
 
    <h1 class="entry-title">"Homepage SlideShow"</h1> 
 
</div>
应用的样式为span元素0

您可以使用CSS属性letter-spacing<span>标记进行应用来完成此操作。

这里我的jsfiddle兄弟 - >http://jsfiddle.net/f6zn0svk/

.letter-spacing { letter-spacing: 10px; }

<h1 class="entry-title">"Hom<span class="letter-spacing">ep</span>age SlideShow"</h1> 
+0

这不是一个很好的解决方案,因为解决方案中的JavaScript不起作用,甚至在更正选择器之后,对HTML的更改也会导致新问题。 – NewToJS

+0

是啊总是同意,但我不知道作者是否真的需要Javascript解决方案。其实这个答案是很好的https://stackoverflow.com/a/44243143/5711528。 –