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

如果您真正需要的是一种简单的方法来获取 id onclick,那么只需在行标记中使用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 回答
0

似乎您发布的内容根本不是 jQuery:D

尝试获取具有 id 的 DOM 元素是简单的 JavaScript rowid。它不起作用可能是因为以下两个原因:

  1. 没有rowid可以轻松验证的带有 id 的元素。
  2. background-color不是它的属性backgroundColor

尝试使用这个:

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