0

関数入力を使用してjqueryの要素にアクセスしようとしています。明確にするために、これは私が試したがうまくいかない例です:

function openReceivedMessage(messageid)
{
    // ajax post query that is executing fine

    // set row to not be highlighted
    var rowid = 'receivedrow' + messageid.toString();
    document.getElementById(rowid).style.background-color = "#ffffff";

    // other code that is executing fine
}

基本的に、これはメッセージの受信トレイページ用です。メッセージをテーブルに表示しました。ユーザーごとにメッセージの数が変わるので、ループを使用してメッセージを入力しました。メッセージを開くために、jquery関数(上記のタイトル)を使用したいと思っていたので、ループがテーブルに入力されたときに、異なる件名の各行がクリックすると、上記の関数を次のように実行するように設定しました。引数として渡された一意のmessageid。開いたら、テーブル内の他のものを変更したいと思います(メッセージ関数と同様に、「receivedrow#」のように名前を付けました。#はmessageidです。

ここで助けていただければ幸いです。文字列を作成し(上記のrowidで行ったように)、そのIDを持つ要素にアクセスする簡単な方法が必要だと思います(テーブルにはid = "receivedrow#"の行があります。のcssを調整したい)。

4

4 に答える 4

1
function openReceivedMessage(messageid)
{

   var rowid = 'receivedrow' + messageid.toString();
   var $el = $('#'+rowid);
   $el.css({'background-color':'#FFFFFF'});

// other code that is executing fine
}
于 2013-01-17T02:47:32.237 に答える
1

jQueryを使用して要素を見つけることをお勧めします

var rowid = 'receivedrow' + messageid.toString();
var $el = $("#" + rowid);

次に、$elを操作するだけです

$el.css({'background-color':'#FFFFFF'});

それでも問題が解決しない場合は、ROWIDが正しいことと、jQueryが適切な要素を返していることを確認することをお勧めします。

于 2013-01-17T02:51:42.423 に答える
0

あなたが投稿したものはjQueryではないようです:D

idを持つDOM要素を取得しようとするのは単純なJavaScriptrowidです。次の2つの理由により、機能しない可能性があります。

  1. rowid簡単に確認できるidの要素はありません。
  2. background-colorそのプロパティではありませんbackgroundColor

これを使用してみてください:

document.getElementById(rowid).style.backgroundColor = "#ffffff";
于 2013-01-17T02:53:49.600 に答える
0

本当に必要なのがidonclickを取得する簡単な方法である場合は、行のマークアップでthisキーワードを使用するだけです。

onclick="openReceivedMessage(this);"

次に、関数にそのようにアクセスします。

function openReceivedMessage(row)
{    
    // set row to not be highlighted
    var rowid = 'receivedrow' + row.id;
    $('#' + rowid).css({'background-color':'#ffffff'});
}
于 2013-01-17T02:56:12.403 に答える