2017-05-08 20 views
0

我有一些問題,此代碼...計數的DIV與特定類,其中的類名是一個變量

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($("article."+classname).length); 
}); 

錯誤:語法錯誤,無法識別的表達式:文章。

我想計數具有特定類的div,其中類名來自選擇字段。我有語法錯誤。見上面...

如果我改變這一行

var classname=$(this).val(); 

這個

var classname="2013"; 

劇本OK。

任何幫助將是巨大的......

+0

我創建了一個簡單的JSFiddle:https://jsfiddle.net/myae5438/。你的代碼似乎是正確的,你確定這段代碼或代碼產生了問題嗎?你可以顯示你的HTML嗎? – SheperdOfFire

+0

好吧,你是對的。 我的代碼是在一個onchange,也許theres問題。我修改了小提琴,你可以檢查一下嗎? https://jsfiddle.net/myae5438/2/ –

回答

0

下面是更新JSFiddle

問題是,你的第一個值是空的,因此jQuery會嘗試找到匹配article.(空選項值)的元素,這確實是一個不正確的表達式。正如你可以在小提琴中看到的那樣,當這個值爲空時,它會被跳過,你的腳本將會工作。當然,你可以根據自己的需要改變一個空值的行爲。

$('select#kronologia').on('change', function(e) { 
    $(this).find('option').each(function() { 
     var classname = $(this).val(); 

     if (classname === '') { 
      return true; 
     } 

     alert($('article.'+classname).length); 
    }); 
}); 
+0

非常感謝!這是對的!你救了我的一天! :) –

0

嘗試改變var classname=$(this).val();var classname=str($(this).val());

0

什麼文章呢?它是一個類前綴或ID前綴

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($(".article"+classname).length); 
}); 

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($("#article"+classname).length); 
}); 
+0

文章不是一個類或ID ...這是一個html5元素

我想要數

0

當您搜索使用JQuery應該有前綴班「」基本規則。 你已經做的一切都很好,只需追加前綴用類名搜索如下。

alert($(".article"+classname).length); 

http://codepen.io/JayPatel758/pen/wdpavo

+0

Article is not a class或ID ...這是一個html5元素

我想要數