在Jquery中使用变量作为对象名称

use variable for object name in Jquery

本文关键字:对象 变量 Jquery      更新时间:2023-09-26

我在一个解决方案中发现了另一个类似的问题,但它对我不起作用。我是jquery的新手,所以提前感谢你帮助我解决我的noobie问题。

我正在尝试使用一个变量作为类名。这样我就可以根据这个变量循环浏览正确的字段。我的变量返回.reqfields4,但我得到了这个错误Error: Syntax error, unrecognized expression: ",如果我手动输入值,它会起作用。

我怎样才能做到这一点?谢谢

var reqsection=''".reqfields4'"';
$(".reqfields4").each ( function() { 
//$(reqsection).each ( function() {               
          if(( $(this).val())==''){
               some code...
               }
          else{
               some code...
              }
            });

只需将var reqsection=''".reqfields4'"';更改为var reqsection='.reqfields4';-不需要内部字符串引号。

您不需要在变量的值内加引号:

var reqsection = '.reqfields4';
$(reqsection).each( ... );

如果您有类名—只是一个类名—您可以添加.:

var reqsection="reqfields4";

$('.'+reqsection).each(…)

您可以尝试如下,

var reqsection=".reqfields4";
$(reqsection).each ( function() { 
              if(( $(this).val())==''){
                   some code...
                   }
              else{
                   some code...
                  }
                });

如果说var reqsection= ''".reqfields4'"';然后$(reqsection).each( function() {});

就像你告诉jQuery的那样:

$(' ".reqfields4" ').each( function() {}); 

换句话说,您说:[请现在选择".reqfields4",包括引号]。所有的类选择器都必须以句点(.)开头,但您刚刚用引号(")启动了jQuery选择器,所以它当然根本不起作用(当然,它不会尝试选择任何类),并且可能会从jQuery中抛出一个错误-我不认为任何jQuery选择器字符串都可以将引号(")作为选择器的实际第一个字符!。

如果你改为这样做:

var reqsection= ".reqfields4";
$(".reqfields4").each( function() {});
$(reqsection).each( function() {}); 

以上两条线是等效的。