2014-10-06 47 views
-1
var eaclink = $('a.topLink'), 
eacwrap = $('div.pan_inner'); 

for(var i = 0; i < eaclink.length; i++) { 
    eacwrap[i].wrap('<div class="panel panel-default"><div id="collapse1" class="panel-collapse collapse in"><div class="panel-body"></div></div></div>'); 
    eaclink[i].attr("data-toggle", "collapse").attr("data-parent", "#accordion").attr("href", "collapse1"); 
} 

我怎麼知道什麼是未定義函數?我一直收到undefined不是函數

+2

哪一行有錯誤? – jrummell 2014-10-06 13:52:46

+2

開發人員控制檯將顯示一行號以及錯誤。這可能就像導入jQuery失敗一樣簡單(這會導致第一次調用'$()'給出錯誤)。 – Pointy 2014-10-06 13:53:10

+0

或者,(如果jQuery包含正確),因爲代碼在正確加載jQuery之前正在執行。在這種情況下,你應該把你的代碼封裝在一個閉包中(例如''jQuery(document).ready(function($){/ * your code here * /});' – giorgio 2014-10-06 13:54:58

回答

3

wrapattr都不是函數,因爲您正在使用DOM元素而不是jQuery對象。

使用.eq(i)而不是[i]來獲取用jQuery對象包裝的元素。

例子:

eacwrap.eq(1).wrap() 
+2

...或'$(eacwrap [i])。attr(...)'。 – dfsq 2014-10-06 13:55:51

相關問題