Javascript 从getJSON的成功函数中设置select input值时出现问题

Javascript 从getJSON的成功函数中设置select input值时出现问题,javascript,jquery,Javascript,Jquery,我有一个带有select输入的html页面,用于过滤函数中的getJSON请求。在请求的success函数中,我从JSON动态创建一个html表,并将该表附加到html文档中的一个div中。一切正常,但选择输入会在调用函数时重置回默认值 我试图将选择输入设置回所选值,以便最终用户知道他们正在查看的数据。我将select输入的类名存储在名为p1Name的参数中,将所选值存储在名为p1的参数中 通常我会使用如下内容:$'.ddlUserID'.Valp1;其中类名是硬编码的。但是我需要这个函数是动态

我有一个带有select输入的html页面,用于过滤函数中的getJSON请求。在请求的success函数中,我从JSON动态创建一个html表,并将该表附加到html文档中的一个div中。一切正常,但选择输入会在调用函数时重置回默认值

我试图将选择输入设置回所选值,以便最终用户知道他们正在查看的数据。我将select输入的类名存储在名为p1Name的参数中,将所选值存储在名为p1的参数中

通常我会使用如下内容:$'.ddlUserID'.Valp1;其中类名是硬编码的。但是我需要这个函数是动态的,并且需要使用p1Name参数作为类名。所以我试过:

var DDL1 = "'." + p1Name + "'";
$(DDL1).val(p1); 
这将返回以下错误,未捕获错误:语法错误,无法识别的表达式:'.ddlUserID'。我还尝试了document.getelementsbyclassnamedl1.value=p1的javascript语法;返回相同的错误

如果我将DDL1的参数更改为“.ddlUserID”的硬编码值,则表单将按预期工作


当使用参数作为id或类名时,设置选择输入的选定值的正确方法是什么?

您不需要在选择器字符串中添加额外的引号

var DDL1 = "." + p1Name;
$(DDL1).val(p1); 

这应该可以

省去var DDL1='中的额外引号p1Name+'


应该是var DDL1='.'+p1Name

应该可以,您可以在选择器中使用字符串。我想你不需要单引号

变量p1Name='ddlUserID' 变量选择器1=`.${p1Name}` 变量选择器2='.'+p1Name console.log'selector1:',$selector1 console.log'selector2:',$selector2 ddlUserID您可以在JQuery中使用.val来设置select输入的值

当使用参数作为id或类名时,设置选择输入的选定值的正确方法是什么

请参见:

$document.readyfunction{ var p1=foo; var p2=巴; 变量p1name=某个_id; var p2name=某个类; $setValues.clickfunction{ $+p1name.valp1; $'.+p2name.valp2; }; }; 设定值 选择一些。。。 1. 2. 3. 福 选择一些。。。 1. 2. 3. 酒吧
然而,硬编码Id或类名时不需要额外的引号吗?当您像您所说的那样进行“硬编码”时,您传递一个字符串变量,该变量表示为单引号或双引号之间的字符串联。在您的例子中,您可以同时使用这两个字符,因此在被双引号删除的字符串中,两端都有“字符”,导致无法识别选择器。引号仅用于指示某个内容是字符串,而不是javascript代码。假定p1Name已经是一个字符串,所以您需要做的就是添加一个字符串。在它的前面。字符串上的加法+将它们组合成一个字符串,因此p1Name创建值为.ddlUserID的字符串