2016-09-28 60 views
-2

我有一個內跨度的跨度,我試圖獲得內跨度(t)的第一個字符並改變它的顏色。我想這樣做有很多方式與JavaScript和jQuery和它不工作如何通過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具有樣式。你不能只是從一個字符串中切出一個字符並給它一個樣式。你需要給你的dom添加標籤來包裝你的角色('span'將是明顯的選擇),併爲該標籤分配一個樣式 –

回答

0

您需要更換HTML:

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' 
相關問題