我的标题中有这个脚本,我的索引中的这段代码,在帖子循环中:
$(function() {
var score = parseInt($('.post-score').text().trim());
var color = '#de1d1d';
if (!isNaN(score)) {
if (score >= 5) {
color = '#b84e1f';
}
if (score >= 7) {
color = '#26b81f';
}
if (score >= 9) {
color = '#d9e019';
}
if (score >= 10) {
color = '#0cf';
}
$('.post-score').css('color', color);
}
});
<?php if( in_category( 'reviews') ) : ?>
<div id="post">
<span class="post-score">
<?php the_field('customfield'); ?>
</span>
</div>
<?php endif; ?>
此功能根据输出的数字更改自定义字段文本颜色,实际上工作正常,但只需。它只适用于FIRST POST的评论,而不是每个帖子。
我的代码出了什么问题?
答案 0 :(得分:1)
分别尝试jQuery:https://api.jquery.com/each/
现在,您的代码只会查看它找到的第一个.post-score
。
编辑:我已经在这个小提琴上为你工作 - https://jsfiddle.net/8b53j2ah/1/
答案 1 :(得分:1)
该JQuery代码可能只执行一次。但是你可以用PHP实现同样的目标。
<?php if( in_category( 'reviews') ) :
$score = get_field('customfield');
$score_color = '';
if($score >= 5 && $score < 7) $score_color = 'b84e1f';
elseif($score >= 7 && $score < 9) $score_color = '26b81f';
elseif($score >= 9 && $score < 10) $score_color = 'd9e019';
elseif($score >= 10) $score_color = '0cf';
?>
<div id="post">
<span class="post-score" style="color: #<?php echo $score_color; ?>">
<?php the_field('customfield'); ?>
</span>
</div>
<?php endif; ?>
您可能希望使用单独的CSS类而不是style-attribute。
答案 2 :(得分:0)
你可以设置一个包含上述javascript的函数,然后在onchange属性下运行它。例如。平变化= “函数()”