我需要根据范围
中的值更改字体大小班级名称中的数字并不总是相同
问题:使用text()我得到所有值(50020)
我需要在某处使用each()和$ this。怎么样?
感谢名单
<span class="emo_vote-1">50</span>
<p>smth.</p>
<span class="emo_vote-2">0</span>
<p>smth.</p>
<span class="emo_vote-3">20</span>
的jQuery
var voteNumberSpan = jQuery("span[class^=\"emo_vote\"]");
var voteNumber = voteNumberSpan.text();
//console.log(voteNumber);
if (voteNumber <= 30) {
voteNumberSpan.css("fontSize","10px")
} else if(voteNumber == 50) {
voteNumberSpan.css("fontSize","16px")
} else {
voteNumberSpan.css("fontSize","24px")
}
//I tried also:
//voteNumberSpan.each(function (i) {
//var voteNumber = voteNumberSpan.text();
//if (voteNumber < 30) {
//voteNumberSpan.css("fontSize","10px")
//} else if(voteNumber == 50) {
//voteNumberSpan.css("fontSize","16px")
//} else {
//voteNumberSpan.css("fontSize","24px")
//}
//});
答案 0 :(得分:1)
jQuery(document).ready(function(){
jQuery("span[class^=\"emo_vote\"]").each(function(){
var voteNumber = $(this).text();
console.log(voteNumber);
if (voteNumber <= 30) {
$(this).css("fontSize","10px")
} else if(voteNumber == 50) {
$(this).css("fontSize","16px")
} else {
$(this).css("fontSize","24px")
}
});
});
答案 1 :(得分:1)
试试这个小提琴:http://jsfiddle.net/5VTN4/5/
它使用每种方法并使用tekst值作为大小:
jQuery(document).ready(function(){
$("span[class^=\"emo_vote\"]").each(function(){
alert($(this).text());
$(this).css("fontSize", $(this).text() + "px")
});
});
答案 2 :(得分:0)
因为您有三个不同的类名,无论出于何种原因,我建议您添加一个通用的类名来关联所有相关的span
元素,然后选择那个(因为如果以emo_vote
开头的类名不首先出现在类列表中,那么使用attribute-starts-with选择器很容易失败,那就说我建议使用以下jQuery:< / p>
jQuery('span.emo-vote').css('font-size', function(){
var s = parseInt($(this).text(), 10);
if (s <= 30) {
return '10px';
}
else if (s > 30 && s <= 50) {
return '16px';
}
else {
return '24px';
}
});
加上以下HTML:
<span class="emo_vote-1 emo-vote">50</span>
<p>smth.</p>
<span class="emo_vote-2 emo-vote">0</span>
<p>smth.</p>
<span class="emo_vote-3 emo-vote">20</span>
顺便说一下,没有必要使用each()
,css()
(正如我上面所示)采用一个匿名函数,该函数将迭代选择器返回的每个元素(其中$(this)
1}}将与运行迭代的当前元素相关。)
参考文献:
答案 3 :(得分:0)
尝试这种方式:
设定每个范围的费率。
<span class="emo_vote-1" data-i2="fontSize:[10,24],key:'k',rate:50" >50</span>
<p>smth.</p>
<span class="emo_vote-2" data-i2="key:'k',rate:0" >0</span>
<p>smth.</p>
<span class="emo_vote-3" data-i2="key:'k',rate:20">20</span>
请参阅demo