英文:
I want to change font color with jquery based on condition after looping through json array
问题
我正在使用jQuery的.each()
循环遍历一个JSON数组,如果值包含单词"CALL",我想将字体颜色更改为红色。我已经尝试了几个示例,但没有成功。
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: '@FetchDay' }, function (dataFetch) {
$.each(dataFetch, function (key, value) {
$('#TodayName').html(dataFetch);
alert(this);
if ($(this).is(':contains("CALL")')) {
$(this).css('color', 'red');
}
});
});
});
英文:
I am looping through a JSON array using .each() in Jquery and I want to change the font color to red if the value contains the word "CALL". I have followed several examples with no luck.
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: ('@FetchDay') }, function (dataFetch) {
$.each(dataFetch, function (key, value) {
$('#TodayName').html(dataFetch);
alert(this);
if ($(this).is(':contains("CALL")')) {
$(this).css('color', 'red');
}
});
});
});
答案1
得分: 0
我怀疑返回的数据是一个数组,因为你正在使用$.each()
循环它。如果是这样,请考虑以下内容。
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: ('@FetchDay') }, function (dataFetch) {
$('#TodayName').html(dataFetch.toString());
$.each(dataFetch, function (key, value) {
if (value.indexOf("CALL") >= 0) {
$('#TodayName').css('color', 'red');
}
});
});
});
如果返回的数据不是一个数组,而是文本,我建议使用$.get()
。
:contains
是用于元素而不是数据的伪选择器。不能以你尝试使用的方式使用它。.indexOf()
会返回一个字符串中特定字符串的索引(或数组中的索引),如果未找到则返回-1
。
英文:
I suspect thew returning data is an Array, since you're looping it with $.each()
. If so, consider the following.
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: ('@FetchDay') }, function (dataFetch) {
$('#TodayName').html(dataFetch.toString());
$.each(dataFetch, function (key, value) {
if (value.indexOf("CALL") >= 0) {
$('#TodayName').css('color', 'red');
}
});
});
});
If the data returned is not an Array, but is Text, I would just use $.get()
.
The :contains
is a pseudo selector for elements not data. It can't be used in the manner you tried to use it. .indexOf()
will return the Index of the specific string in a string (or Array) or -1
if not found.
答案2
得分: 0
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: ('@FetchDay') }, function (dataFetch) {
$.map(dataFetch, function (value, key) {
if (value.indexOf("CALL") >= 0) {
value2 = value.fontcolor('#cd0000');
dataFetch[key] = value2;
}
$('#TodayName').html(dataFetch);
});
});
});
英文:
$(function () {
var FetchMonUrl = '@Url.Action("FetchToday")';
$.getJSON(FetchMonUrl, { MonID: ('@FetchDay') }, function (dataFetch) {
$.map(dataFetch, function (value, key) {
if (value.indexOf("CALL") >= 0) {
value2 = value.fontcolor('#cd0000');
dataFetch[key] = value2;
}
$('#TodayName').html(dataFetch);
});
});
});
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论