Javascript 使其包含唯一的数据

Javascript 使其包含唯一的数据,javascript,jquery,html,Javascript,Jquery,Html,由于我将在多个地方使用它,因此我希望让它使用唯一的数据 例如,而不是,然后可能是类似的东西,它应该作为脚本的一部分运行,这样它只处理单击的数据,而不是所有的框 我的HTML是这样的(有多个): 希望有人能理解我,因为我以前见过这种方法,但我不知道它的名字,或者别的什么 感谢您的高级帮助。获取对已单击项的父元素的引用,然后使用适当的类查找其子元素: $('.snippet_show_answers').live("click", function() { var item = $(this

由于我将在多个地方使用它,因此我希望让它使用唯一的数据

例如,而不是
,然后可能是类似
的东西,它应该作为脚本的一部分运行,这样它只处理单击的数据,而不是所有的框

我的HTML是这样的(有多个):

希望有人能理解我,因为我以前见过这种方法,但我不知道它的名字,或者别的什么


感谢您的高级帮助。

获取对已单击项的父元素的引用,然后使用适当的类查找其子元素:

$('.snippet_show_answers').live("click", function() {
    var item = $(this).closest(".snippet_answers");
    item.find('.answers').slideDown("slow");
    item.find('.snippet_show_answers').fadeOut("slow");
    item.find('.snippet_hide_answers').fadeIn("slow");
    return false;
});

$('.snippet_hide_answers').live("click", function() {
    var item = $(this).closest(".snippet_answers");
    item.find('.answers').slideUp("slow");
    item.find('.snippet_hide_answers').fadeOut("slow");
    item.find('.snippet_show_answers').fadeIn("slow");
    return false;
});

另外,如果您使用的是最新版本的jQuery,请确保将
.live()
更改为
.on()
.live()
最近被弃用。

DIV
不能是
p
标记的子项..需要从有效的htmlOkay开始,谢谢你的提醒,我会解决这个问题:)如果我误解了你,请阻止我:你试图让JavaScript只在点击的段落上运行,但目前,当点击时,JavaScript在每个段落上运行?好的,我会写一个答案。D:I’我很期待,非常感谢。但当我使用此选项时,
.answers
由于某种原因不会滑动。有什么想法吗?@ErikHansen-将您的外部
更改为
不能包含子
,也不需要结束标记。当HTML解析器遇到第二个
时,它会自动关闭第一个
,从而改变DOM层次结构。随后的

将被忽略。对外部元素使用
应该可以解决这个问题。非常感谢。我现在开始工作了:)我会记得最近的
呼叫,将来可能有用。
$('.snippet_show_answers').live("click", function() {
    $('.answers').slideDown("slow");
    $('.snippet_show_answers').fadeOut("slow");
    $('.snippet_hide_answers').fadeIn("slow");
    return false;
});

$('.snippet_hide_answers').live("click", function() {
    $('.answers').slideUp("slow");
    $('.snippet_hide_answers').fadeOut("slow");
    $('.snippet_show_answers').fadeIn("slow");
    return false;
});
$('.snippet_show_answers').live("click", function() {
    var item = $(this).closest(".snippet_answers");
    item.find('.answers').slideDown("slow");
    item.find('.snippet_show_answers').fadeOut("slow");
    item.find('.snippet_hide_answers').fadeIn("slow");
    return false;
});

$('.snippet_hide_answers').live("click", function() {
    var item = $(this).closest(".snippet_answers");
    item.find('.answers').slideUp("slow");
    item.find('.snippet_hide_answers').fadeOut("slow");
    item.find('.snippet_show_answers').fadeIn("slow");
    return false;
});