2014-03-02 36 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

相关问题