Jquery - 根据sql结果的值更改字体颜色

Posted

技术标签:

【中文标题】Jquery - 根据sql结果的值更改字体颜色【英文标题】:Jquery - change font color based on value of sql result 【发布时间】:2013-06-18 08:19:44 【问题描述】:

我希望使用 jquery 更改 div 的字体颜色,其中 div 由 SQL 查询的输出填充。

我有:

$(document).ready(function()
    $('#foo').each(function()
        if ($(this).text() == 'bar') 
            $(this).css('color','orange');
        
    );
);

来自当 div 包含文本时可以正常工作的 SO 搜索。

但由于这是 SQL,我在 div 中填充:“.$row['result']。”

现在这不起作用。我猜这是因为 sql,虽然是一个 varchar 字段是一个 $variable 并且不是 'text' 本身吗?

我确信这很简单,但我很难在谷歌中用这个词来返回任何有用的东西。

非常感谢。

编辑

整个过程相当长,在我尝试添加 jquery 之前一切正常,所以我将发布添加内容。

这是在头脑中:

echo "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js'></script>";  
echo "<script type='text/javascript'>";  
echo "$(document).ready(function() $('#foo').each(function() if ($(this).text() == 'bar')  $(this).css('color','orange');););";

然后我在 while 循环中回显每一行:

$sql = "选择..."; $result = mysql_query($sql) 或死(mysql_error()); while($row = mysql_fetch_array($result))echo "&lt;div id='foo'&gt;".$row['result']."&lt;/div&gt;";

整个文档都包含在 php 中,但它不是问题的根源,就好像我将 div 更改为包含文本而不是“.$row['result']”。然后 jquery 在它上面执行就好了。

【问题讨论】:

SQL(我猜你使用 PHP?)是服务器端,而 jQuery 是客户端。您可以发布用于从 SQL 更改颜色的代码(jQuery 和 SQL)吗? #foo 代表 div 的 id 或任何其他 【参考方案1】:

您为每个 div 赋予相同的 id(“foo”)。一个 id 在 html 中必须是唯一的,你最好为此使用一个类。你现在拥有.each() 函数的方式只会在一个元素上调用,可能是第一个。

像这样更改 HTML 输出:

echo "<div class='foo'>".$row['result']."</div>";

然后,相应地调整 jQuery 中的选择器:

$('.foo').each(function()
  // ...

【讨论】:

【参考方案2】:

您是使用 $.ajax 调用还是只是在页面加载时通过 PHP 嵌入值?

如果你使用 PHP 打印值,我猜你忘了回显该值:

".<?php echo $row['result']?>."

不只是:

".$row['result']."

【讨论】:

在上面编辑以显示 sql 以及我如何打印它。在尝试对其应用任何 Jquery 之前,页面上的一切都很好。只是“文本”是一个让我难过的 sql 结果。谢谢。 空格问题? ...尝试 $(this).text().trim() == 'bar' 。一般来说,定义css类而不是用jquery检查内容会更明显。

以上是关于Jquery - 根据sql结果的值更改字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

jQuery / DataTables:如何更改分页颜色

使用 jquery 更改占位符文本字体和颜色

Markdown修改字体颜色

根据值更改表列颜色在剃须刀文件中使用 jquery 不起作用

jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色

根据值角度js更改字体颜色