JQuery中动态设置选择器

时间:2011-09-19 14:58:16

标签: php jquery

我有一个表,其值是用PHP动态生成的,包括id和name属性(例如id =“question _”。

如何设置元素属性?例如,我有一个div,其文本将在成功的ajax调用后更改,但id是动态的。

我尝试过制作以下测试功能,并在onclick事件中调用它:

function approve(question_id)
{
    var div = 'suggestion_status_' + question_id;
    $('#div').html('test');
}

但这不起作用。如何使变量'div'的值成为选择器?

6 个答案:

答案 0 :(得分:2)

您的示例的问题是div是变量,而不是字符串;所以以下内容将起作用:

function approve(question_id)
{
    var div = 'suggestion_status_' + question_id;
    $('#' + div).html('test');
}

甚至:

function approve(question_id)
{
    $('#suggestion_status_' + question_id).html('test');
}

另一种方法是利用类,并为元素添加已知类。在没有看到完整的HTML的情况下,我无法提供完整的示例,但某些就是这样的方式:

$('.yourCommonClass').bind('click', function () {
    var that = this;

    jQuery.get('/accept.php', {
        id: this.id
    }, function (msg) {
        $(that).html('Accepted!');
    });
});

请记住,jQuery.get参数是目标网址,在请求中编码的可选数据属性,然后是回调函数。

答案 1 :(得分:1)

您将div定义为变量然后将其用作字符串尝试连接它而不是

function approve(question_id)
{
    var div = 'suggestion_status_' + question_id;
    $('#'+ div).html('test');
}

或像这样缩短

function approve(question_id)
{
    $('#suggestion_status_' + question_id).html('test');
}

答案 2 :(得分:0)

$('#suggestion_status_' + question_id).html('test');

答案 3 :(得分:0)

$('#suggestion_status_' + question_id)

答案 4 :(得分:0)

我想你想要这个:

function approve(question_id)
{
    var div = 'suggestion_status_' + question_id;
    $('#'+div).html('test');
}

答案 5 :(得分:0)

this. $('#suggestion_status_' + question_id).html('test');