2011-12-04 28 views
1

寫在JQuery的,其中元素的ID創建由JSON concatinating文本object.value我們可以寫兩個或多個元素風格一行在JQuery中

 checkSucess = function(first,last,value) { 
     // Jquery ajax with url,params and response 
     doPost('sucess.php', 
        'first=' + first + 
        '&last=' + last, 
        function(response) { 
         var obj = $.parseJSON(response); 
          $('#button'+obj.a,'#button'+obj.b,'#button'+obj.c).css({'text-decoration':'blink','color':'#4ECFBD'}); 
        } 
     ); 
    } 

這裏

單行兩個或多個元素的風格
$('#button'+obj.a).css({'text-decoration':'blink','color':'Magenta','font-weight':'bold'}); 
    $('#button'+obj.b).css({'text-decoration':'blink','color':'Magenta','font-weight':'bold'}); 
    $('#button'+obj.c).css({'text-decoration':'blink','color':'Magenta','font-weight':'bold'}); 

作品正確,

$('#button'+obj.a,'#button'+obj.b,'#button'+obj.c).css({'text-decoration':'blink','color':'#4ECFBD'}); 

不工作爲什麼?

回答

2

你必須合併選擇在一個字符串,以這種方式:

$('#button'+obj.a + ', #button'+obj.b + ', #button'+obj.c).css({'text-decoration':'blink','color':'#4ECFBD'}); 

或者,你可以使用.add()方法來合併選擇:

$('#button'+obj.a) 
    .add('#button'+obj.b) 
    .add('#button'+obj.c) 
    .css({'text-decoration':'blink','color':'#4ECFBD'}); 
+0

+1首先使用'add'語法:) – Jon

+0

哪個建議在生產模式下更易接受 –

+0

@Jusnit第一個,除非你發現代碼的可讀性非常重要。 –

3

您正在使用逗號錯誤。這是可能的,但它需要這樣寫

$('#button'+obj.a+',#button'+obj.b+',#button'+obj.c).css({ ... }); 

注意,現在的逗號是的字符串。

更新:我要補充一點,它可能是更具可讀性寫爲

$('#button'+obj.a) 
.add('#button'+obj.b) 
.add('#button'+obj.c) 
.css({ ... }); 

但羅布W¯¯打我給它。 :-)

+0

+1具有早些時候發佈了答案的第一部分:p –

+0

@ jfriend00:我並不是說你錯了,但是恕我直言,在試圖猜測這種無關緊要的操作如何優化時毫無意義。 – Jon

相關問題