2017-02-27 167 views
0

我有一个我正在构建的FAQ页面。在问题旁边,展开内容有一个加号。点击后,我添加了活动类,但有很多问题,我不想为每个问题重复相同的jQuery代码片段。我已经想出了如何找到父ID,但是我无法将它存储在一个变量中以便在jQuery脚本中重用。在变量中存储jQuery

我希望能够做到:

var element = $(this).parent().parent().attr('id') 

$('.expand').click(function(){ 
$('element .expand').toggleClass('active') 
}) 

有没有办法做到这一点?我得到了一个未定义当我这样做:

$('.expand').click(function(){ 
    console.log(element) 
}); 
+0

你要么必须通过要素的功能 - '$点击(函数(元素)(“扩大”)。 ',或者你可以简单地使用'this'关键字 – baao

+0

,假设这里的第一行是文档级别的,你实质上是在说'$(window).parent()。parent()。attr(“id”)'它显然会返回undefined。 – mhodges

回答

0

可以使用find()功能查找所选元素的儿童:

var element = $(this).parent().parent().attr('id') 
$('.expand').click(function(){ 
    $("#" + element).find('.expand').toggleClass('active') 
}); 

然而,看着你的代码,好像你只是想切换单击元素的“活动”类。如果是这样的话,你可以这样做更加简单没有变量都:

$('.expand').click(function(){ 
    $(this).toggleClass('active') 
}); 
+0

这就是它!我知道有一个更简单的方法。谢谢@americanulaut! – aliyahmaliyah

+0

它应该是'$('#'+元素)'。你需要'#'前缀来表明它是一个ID。 – Barmar

+0

@Barmar谢谢,我忽略了她抓取ID而不是参考元素本身。 – AmericanUmlaut