2012-09-10 56 views
0

我發現了另一個與解決方案有關的類似問題,但它對我無效。我是jquery的新手,所以在提前感謝幫助我解決我的noobie問題。在Jquery中使用變量作爲對象名稱

我想爲類名使用一個變量。這樣我可以根據這個變量循環正確的字段。我的變量返回.reqfields4,但我得到這個錯誤Error: Syntax error, unrecognized expression: ",如果我手動輸入值,它的工作原理。

我該如何做到這一點?謝謝。

var reqsection='\".reqfields4\"'; 

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

jQuery的預計,一類選擇一個String對象,所以絕對沒有理由你需要逃離這裏的報價。除非你真的想要一個帶有引號的類名(並且它不起作用,所有的類名都以點開頭,而不是引號!)。在選擇器內加引號的目的是,如果你還沒有有一個字符串對象!如果你的字符串對象是在一個變量中,那麼你有你的字符串對象,就是這樣!在js中引用= new String('whatever')的快捷方式,並不意味着奇怪或神祕的東西,因爲某些原因需要引號。 – sajawikio

回答

1

只要改變var reqsection='\".reqfields4\"';var reqsection='.reqfields4'; - 你不需要內部串引號。

+0

謝謝先生! :) – PepeFloyd

1

你不需要變量的值,引號裏:

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

如果你有一個類名— 只是類名—你可以添加.

var reqsection ='reqfields4';

$( '' + reqsection)。每個(...)

0

如果說var reqsection= '\".reqfields4\"'; 然後 $(reqsection).each(function() {});

考慮它像你這樣告訴jQuery的這個:

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

換句話說,你說:請選擇現在」 .reqfields4" 包括quotemarks] 。所有的類選擇器都必須以點(。)開頭,但是你只是用一個引號(「)來啓動你的jQuery選擇器,所以它當然根本不起作用(當然,它不會嘗試選擇任何類),並且可能會從jQuery中拋出一個錯誤 - 我不認爲任何jQuery選擇器字符串都可以將quotemark(「)作爲選擇器的實際第一個字符!

如果你這樣做,而不是:

var reqsection= ".reqfields4"; 

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

上面兩行是等價的。

0

你可以嘗試像如下,

var reqsection=".reqfields4"; 

$(reqsection).each (function() { 

       if(($(this).val())==''){ 
        some code... 
        } 
       else{ 
        some code... 
        } 
       }); 
相關問題