1

SQLクエリの出力によってdivが設定されるjqueryを使用して、divのフォントの色を変更しようとしています。

私は持っている:

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

divにテキストが含まれている場合に正常に機能するSO検索から。

しかし、これは SQL であるため、div に ".$row['result']." を入力しています。

そして、これは今では機能しません。これは、varchar フィールドであるにもかかわらず、SQL が $variable であり、「テキスト」ではないためであると推測しています。

これは簡単なことだと思いますが、これをグーグルで表現して何か役に立つものを返すのに苦労しています。

どうもありがとう。

編集

全体がかなり長く、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)or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "<div id='foo'>".$row['result']."</div>";
}

ドキュメント全体が PHP でラップされていますが、div を ".$row['result']." ではなくテキストを含むように変更したかのように、問題の原因ではありません。その後、jqueryは問題なく実行されます。

4

2 に答える 2

0

すべてのdivに同じID(「foo」)を与えています。ID は HTML 内で一意である必要があります。これにはクラスを使用する方がよいでしょう。現在の方法では、.each()関数は1つの要素、おそらく最初の要素でのみ呼び出されます。

HTML 出力を次のように変更します。

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

次に、それに応じて jQuery でセレクターを調整します。

$('.foo').each(function(){
  // ...
}
于 2013-06-21T10:22:51.477 に答える
0

$.ajax 呼び出しを使用していますか、それともページの読み込み時に PHP 経由で値を埋め込んでいますか?

PHP を使用して値を出力する場合、値をエコーするのを忘れていると思います。

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

だけでなく:

".$row['result']."
于 2013-06-21T09:36:08.027 に答える