我希望使用jquery更改div的字体颜色,其中div由SQL查询的输出填充。
我有:
$(document).ready(function(){
$('#foo').each(function(){
if ($(this).text() == 'bar') {
$(this).css('color','orange');
}
});
});
来自SO搜索,当div包含文本时,它可以正常工作。
但是因为这是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 =“SELECT ...”;
$ result = mysql_query($ sql)或die(mysql_error());
while($ row = mysql_fetch_array($ result)){
echo "<div id='foo'>".$row['result']."</div>";
}
整个文档都包含在PHP中,但它不是问题的根源,好像我将div更改为包含文本而不是“。$ row ['result']。”然后jquery就可以执行了。
答案 0 :(得分:0)
您是否使用$ .ajax调用或仅在页面加载时通过PHP嵌入值?
如果您使用PHP打印该值,我猜您忘记回显该值:
".<?php echo $row['result']?>."
不只是:
".$row['result']."
答案 1 :(得分:0)
你给每个div都有相同的id(“foo”)。一个id必须在HTML中是唯一的,你最好使用一个类。你现在拥有它的方式.each()
函数只能在一个元素上调用,可能是第一个元素。
像这样更改HTML输出:
echo "<div class='foo'>".$row['result']."</div>";
然后,相应地调整jQuery中的选择器:
$('.foo').each(function(){
// ...
}