在JQuery中动态设置选择器


Settings Selector Dynamically in JQuery

我有一个表,它的值是用PHP动态生成的,包括id和name属性(例如id="question_".

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

我尝试了以下测试函数,并在onclick事件上调用它:

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

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

你的例子的问题是,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参数是目标url,在请求中编码的可选数据属性,然后是回调函数。

您将div定义为变量,然后将其用作字符串,请尝试将其连接起来

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

或者像这样缩短

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

我想你想要这个:

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