$(this).text().charAt(0)
是一個JavaScript字符串。它沒有方法.css()
。
因此,您無法將CSS應用於JavaScript字符串中的單個字符。
如果要將顏色應用於頁面中的一個字符,必須獲取文本,在第一個字符周圍添加span標籤,添加樣式,然後將該HTML設置回DOM元素。
我建議改變你的代碼如下:
$('#menu li').hover(function() {
var text = $(this).text();
text = "<span style='color: red'>" + text.charAt(0) + "</span>" + text.slice(1);
$(this).html(text);
},
function() {
$(this).html($(this).text());
});
你可以看到一個在這裏的行動:http://jsfiddle.net/jfriend00/9xCak/
我不建議使用此jQuery的,因爲有更好的方法來做到這個。它可以用純CSS完成,或者你可以用你的jQuery添加/刪除一個類。
請注意,您不需要each
循環,因爲您可以在第一個jQuery選擇器上設置一個懸停處理程序,並且它將爲選擇器中的所有匹配元素執行.hover。另外,當鼠標離開時,您在懸停呼叫中有第二個功能來設置它。
如果您打算在鼠標離開li時紅色消失,那麼您可以完全使用CSS完成此操作。不需要jQuery。
HTML:
<li><span class="firstLetter">F</span>irst Menu Item</li>
CSS:
li .firstLetter:hover {color:red;}
Thanks.That was a awesome reply。 –