jquery函数根据特殊字符更改文本颜色
jquery function to change text color depending on a special character
如果HTML列表中有负数,我想更改文本颜色
这是我对HTML中jquery函数的调用。
<ul id="negativeValidation">
<li>123.5</li>
<li>-43.5</li>
</ul>
这是我的jquery函数:
$(document).ready(function() {
$('#negativeValidation', function() {
if($("li:contains('-')")== true)
{
$("li").css("color", "red");
console.log("True");
}else{
$("li").css("color", "green");
console.log("False");
}
});
});
它不起作用,当我去控制台时,我总是收到"错误"的消息,所以我想知道出了什么问题,或者我是否错过了什么。
$("li:contains('-')")
返回一个jQuery对象,该对象始终是truthy,即使该选择器不存在。要测试元素是否匹配,您需要使用length
或is()
,但也需要检查每个实例
试试这样的东西:
$('#negativeValidation li').each(function(){
var color = $(this).is(':contains(-)') ? 'red' :'green';
$(this).css('color',color);
});
一个更有效的方法是使用CSS并为负添加一个类
#negativeValidation li {color: green}
#negativeValidation li.negative {color: red}
JS-
$('#negativeValidation li').filter(function(){
return +$(this).text() < 0;
}).addClass('negative');
首先,在这两种情况下都有console.log('False')
。
这样写JS Fiddle
$(document).ready(function() {
$('#negativeValidation li').each(function() {
var txt = $(this).text();
if (txt.indexOf('-') > -1) {
$(this).css("color", "red");
console.log("True");
} else {
$(this).css("color", "green");
console.log("False");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul id="negativeValidation">
<li>123.5</li>
<li>-43.5</li>
</ul>
您应该需要"for":
$(document).ready(function() {
$('#negativeValidation', function() {
var lis = $('#negativeValidation li');
for (i = 0; i <= lis.length; i++) {
if (lis.eq(i).is(':contains(-)')) {
lis.eq(i).css("color", "red");
console.log("True");
} else {
lis.eq(i).css("color", "green");
console.log("False");
}
}
});
});
如果我的HTML列表
但问题标题指的是特殊字符。希望你只是指负数。
因此,以一种纯粹的javascript方式
// Select all li elements.It will return a collection of matched elements
var getLiItems = document.querySelectorAll("#negativeValidation li");
// Loop through it , get each's text content ,
// convert it to float and check if less than 0
for(var i=0;i<getLiItems.length;i++){
var getTextContent = parseFloat(getLiItems[i].textContent);
//if less than zero add a class to it
getTextContent < 0 ? (getLiItems[i].classList.add("negativeColor")): 0;
}
工作示例
相关文章:
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- mouseover和mouseleave文本颜色更改在指令链接中不起作用
- 如何在flash html5画布项目中动态更改文本颜色
- 使用JavaScript淡化文本颜色
- 使用Javascript切换文本颜色
- 我可以使用jqgrid的oncellselect事件根据单元格内容将文本颜色更改为蓝色吗
- 使用jquery更改文本颜色和大小
- 如何使用javascript更改
前色/文本颜色以及boder颜色 - Extjs 树 如何更改子元素的文本颜色
- 选项选定的文本颜色
- JQuery:悬停时文本颜色切换
- 根据覆盖的背景区域的亮度更改文本颜色
- 根据类型更改 jstree 节点文本颜色
- 文本颜色的随机色调不起作用
- 如何在高亮显示时更改文本颜色
- 使用CSS或SVG设置与背景颜色匹配的文本颜色的动画
- Chart.js文本颜色
- 如何更改chardin.js中的文本颜色和样式
- 更改javascript代码段背景和文本颜色
- 如何在安卓网页中更改背景和文本颜色