2014-03-02 35 views
0

這是我的代碼:(我使用基於MVC的CMS)。變量沒有定義,當我嘗試獲得一個ID

HTML:

<div class="item_group_title"> 
    <a id="title_{$group.title}" data-tip="{lang("show", "store")}" class="hide_group" href="javascript:void(0)" onClick="Store.toggleGroup(this)"> 
    <img src="{$url}application/images/icons/{$group.title}.png"> 
    </a> 
</div> 

...

<section class="item_group" id="group_{$group.title}" {if $minimize}style="display:none"{/if}> 
</section> 

JS:

toggleGroup: function(field) 
{ 
    var titleId = $(field).attr('id'); 
    var groupId = $titleId.text().replace('title_', 'group_'); 
    var group = $($groupId); 

    if(group.is(":visible")) 
     { 
     $(field).attr('data-tip', lang("hide", "store")); 
    } 
    else 
    { 
     $(field).attr('data-tip', lang("show", "store")); 
    } 

    group.css("display","visible"); 
}, 

是林試圖獲得:當我點擊下面的部分應該是可見。會有一些鏈接和一些部分,每個鏈接會影響一個部分。

我的問題是,我收到此錯誤:$ titleId沒有定義

任何想法?非常感謝你

回答

1

titleId$titleId是不一樣的東西,美元是另一個字符,是變量名稱的一部分。

如何

var $titleId = $(field).attr('id'); 
var $groupId = $titleId.text().replace('title_', 'group_'); 
var group = $($groupId); 

它有很多的變量相同,確保他們要麼有dollarsign,或者他們不這樣做。

+0

它仍然發送錯誤,但這次:$ titleId.text不是函數, 也許語法錯誤? – user3371028

+0

@ user3371028 - 不,'$ titleId'現在是上面一行返回的ID,它只是一個字符串,而一個字符串沒有'text()'方法,所以這聽起來很正確。 – adeneo

+0

有點難以理解你正在嘗試做什麼,但也許是這樣的 - > http://jsfiddle.net/5aXbV/ – adeneo

相關問題