我將如何能夠把它寫讓新手那麼它的一個顏色,如果跨度說,俱樂部的工作人員則有另一種顏色?如果跨度說jQuery的,如果每個人都有價值,然後
<span class="usertitle">Newbie</span>
<span class="usertitle">Club Staff</span>
我將如何能夠把它寫讓新手那麼它的一個顏色,如果跨度說,俱樂部的工作人員則有另一種顏色?如果跨度說jQuery的,如果每個人都有價值,然後
<span class="usertitle">Newbie</span>
<span class="usertitle">Club Staff</span>
JS區分大小寫:
$('span.usertitle:contains('Newbie')').addClass('newbieColor');
$('span.usertitle:contains('Club Staff')').addClass('clubStaffColor');
JS不區分大小寫:
$('span.usertitle').html(function() {
var text = $(this).text().toLowerCase();
if(text === 'newbie') {
$(this).addClass('newbieColor');
} else if(text === 'club staff') {
$(this).addClass('clubStaffColor');
}
});
個
CSS:
.newbieColor {
color: yellow;
}
.clubStaffColor {
color: red
}
你可以嘗試:contains
選擇:
$(".usertitle:contains('Newbie')")
或each
方法:
$(".usertitle").each(function(){
if ($.trim($(this).text()) == 'Newbie') {
// $(this).css('color', 'blue')
}
})
$('.usertitle').each(function(){
var text = $.trim($(this).text());
if(text == "Newbie"){
// one color
}
else if(text == "Club Staff"){
// another color
}
});
1.'text'是一個函數,而不是一個屬性。 2. ***非常微妙(請參閱Jorge早期回答中的註釋) –
現在您不斷調用'$()'和'text()'。爲什麼一遍又一遍?不必要的工作。再次:2. ***非常微妙(請參閱Jorge早些時候的回答)。 –
Jorge刪除了他的答案:您的代碼不會與發佈的標記一起使用,因爲字符串不匹配。 –
$(document).ready(function() {
$('.usertitle').each(function() {
if ($(this).html() == "Newbie") $(this).css("color","blue");
else if ($(this).html() == "Club Staff") $(this).css("color", "red");
});
});
您的小提琴只能用,因爲您的標記與OP的不完全相同。 (OP的標記將具有稍微不同的文本節點。) –
好吧,現在OP已經改變了他的標記,所以這個工作。 :-) –
如果你真的想從內容工作:
$(".usertitle").each(function() {
var $this = $(this);
var color;
switch ($.trim($this.text())) {
case "Newbie":
color = "green"; // For instance
break;
case "Club Staff":
color = "red"; // For instance
break;
}
if (color) {
$this.css("color", color);
}
});
注意使用您在編輯中更新的標記不會。但我仍然使用$.trim
,這是奇怪的是從其他的答案缺少在這裏,因爲你的標記可能包括對詞語的兩側空白你的跨度。$.trim
,因爲它不會花費太多,並且使事情變得更加脆弱。
(或者,當然,而不是css
,使用addClass
這樣你就可以控制通過樣式呈現。)
但我真的試圖找到一種方法,從比,如果你的內容以外的東西的工作可能可以。
或者更緊湊,並聲明:
var colors = {
"Newbie": "green",
"Club Staff": "red"
};
$(".usertitle").each(function() {
var $this = $(this);
var color = colors[$.trim($this.text())];
if (color) {
$this.css("color", color);
}
});
再或者,而不是css
,使用classes
表,而不是一個colors
表並使用addClass
,這樣你就可以控制通過樣式呈現,如:
var classes = {
"Newbie": "newbie",
"Club Staff": "club-staff"
};
$(".usertitle").each(function() {
var $this = $(this);
var cls = classes[$.trim($this.text())];
if (cls) {
$this.addClass(cls);
}
});
我會使用CSS類和addClass()
$('.usertitle').each(function(){
var t = $(this),
text = $.trim(t.text())
t.addClass(
text === 'Newbie' && 'green' ||
text === 'Club Staff' && 'red' ||
!text && 'default'
)
})
你嘗試過什麼?你在哪裏遇到麻煩? (你爲什麼給你的兒子基弗命名?;-)) –
如果你可以控制輸出,爲什麼不在你的CSS中爲每個值創建類,並且將相應的類添加到一個值中?我認爲它比試圖用JavaScript來破解這個要好得多。 – Styxxy