2016-09-28 10 views
-2

私はスパンが内側スパンであり、内側スパン(t)の最初の文字を取得してその色を変更しようとしています。私には、JavaScriptとjQueryの両方で多くの方法で、それはあなたがHTMLを交換する必要がJqueryまたはjavaScriptで文字列の最初の文字を取得するには?

// with javascript  
 

 
var index = document.getElementById('spa'); 
 
var indexsl = index.slice(0, 1); 
 
indexsl.style.color = "f00"; //doesn't work 
 

 
var index = document.getElementById('spa'); 
 
var indexsl = index.substring(0, 1); 
 
indexsl.style.color = "f00"; //doesn't work 
 

 
var index = document.getElementById('spa'); 
 
var indexsl = index.charAt(0, 1); 
 
indexsl.style.color = "f00"; //doesn't work 
 

 

 
// with jQuery 
 

 
var index = $('.design span').charAt(0); 
 
index.css('color', '#f00') // doesn't work 
 

 
var index = $('.design span').substring(0, 1); 
 
index.css('color', '#f00') // doesn't work 
 

 
var index = $('.design span').slice(0, 1); 
 
index.css('color', '#f00') // doesn't work
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="design">DESIGNED BY <span id="spa">Teodor Victor</span></span>

+2

Emインデックスはオブジェクトであり、配列ではありません。それにスタイルを割り当てることはできません –

+0

JavaScript文字列にはスタイルがありません。 HTMLにはスタイルがあります。あなたは文字列から文字を切り取り、スタイルを与えることはできません。あなたのキャラクターをラップするタグを追加する必要があります( 'span'は当然の選択です)。 –

答えて

0

動作しないことを実行しようとしました:

ind=index.innerHTML.split(""); 
ret="<span class='red'>"+ind.first()+"</span>"+ind.join(""); 
index.innerHTML=ret; 
2

それとも、スキップすることができますJavaScriptを使用してCSSを使用します。

span.design > span::first-letter { 
 
    color:red; 
 
} 
 

 
span { 
 
    display:inline-block; 
 
}
<span class="design">DESIGNED BY <span>Teodor Victor</span></span>

+0

spanがインラインブロックであるのはなぜですか? – Teodor

+0

' :: first-letter'はブロック要素に対してのみ機能します – j08691

+0

しかし、私は平らな権利を与え、それは完全に動作しません 別の方法です – Teodor

0

あなたは、最初の文字を取得する別のフォントの色でそれを挿入し、残りのコンテンツを追加することができます。

var span = $('.design span'); 
 
var html = span.html(); 
 

 
span.html("<span style='color:red;'>"+ html.charAt(0) +"</span>" + html.substring(1,html.length));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="design">DESIGNED BY <span>Teodor Victor</span></span>

-1

あなたはこのようにしてみてくださいましたか?何をしたい

var header = $('.design span').text().charAt(0); 
index.css('color','#f00'); 

それとも

var header = $('.design span').text().substring(0,1); 
index.css('color','#f00'); 
1

charAtです。

var str = 'some string'; 
console.log(str.charAt(0)); // return 's' 
関連する問題