变量中的jquery选择器

Ala*_*n C 0 variables jquery selector

有人可以解释为什么这个jquery选择器不工作,我已经解决了这个问题,但我的理智是想知道我有什么问题

我有一个包含多个textareas的表单,每个表单都有一个像f_id_DSC000001.JPG的ID,其中最后一部分是照片编号,textarea有一个onblur事件,它使用post发送其内容并更新数据库表,json响应返回.所有这一切都很好,我可以看到使用Firebug的结果,那里没有问题.

id的DSC000001.JPG部分在json响应中作为确认传回,然后我想更改textarea的类以显示更新的状态.

当我这样做

var textarea_selector="#f_id_"+res_data.image_filename;
$(textarea_selector).removeClass("kw-class");
$(textarea_selector).addClass("update-failed");
Run Code Online (Sandbox Code Playgroud)

班级不会改变,但如果我这样做

$("textarea[id*='"+res_data.image_filename+"']").removeClass("kw-class");
                  $("textarea[id*='"+res_data.image_filename+"']").addClass("update-done");
Run Code Online (Sandbox Code Playgroud)

它工作正常.

我不是javascript/jquery专家:-(所以一个基本的解释是我真的很感激.

Gum*_*mbo 8

你的身份证上有一个点.这被解释为类选择器:

#f_id_DSC000001.JPG
\_____________/\__/
 id             class
Run Code Online (Sandbox Code Playgroud)

但这应该工作:

var textarea_element = document.getElementById("f_id_"+res_data.image_filename);
$(textarea_element).removeClass("kw-class").addClass("update-failed");
Run Code Online (Sandbox Code Playgroud)

或这个:

var textarea_id = "f_id_"+res_data.image_filename;
$("[id="+textarea_id+"]").removeClass("kw-class").addClass("update-failed");
Run Code Online (Sandbox Code Playgroud)