Javascript 再次单击同一类时,Jquery替换为并恢复旧值

Javascript 再次单击同一类时,Jquery替换为并恢复旧值,javascript,jquery,html,Javascript,Jquery,Html,我有一个css类来设计一些div 当我单击其中一个div时,我可以用新值替换类。但是,我想在再次单击div classclass=“some_div”时恢复其默认值。因此,我只想显示一次 提前谢谢 $(文档).ready(函数(){ $(“.some_div”)。单击(函数(){ var divId=$(this.attr(“id”); var divVideo=$(this.attr(“数据视频”); $(this.replacetwith('newdiv'); }); }) 某个部门 某

我有一个
css
类来设计一些
div

当我单击其中一个
div
时,我可以用新值替换
类。但是,我想在再次单击div classclass=“some_div”时恢复其
默认值。因此,我只想显示一次

提前谢谢

$(文档).ready(函数(){
$(“.some_div”)。单击(函数(){
var divId=$(this.attr(“id”);
var divVideo=$(this.attr(“数据视频”);
$(this.replacetwith('newdiv');
});
})

某个部门
某个部门
某个部门

您的意思是切换其数据?试试这个

$(document).ready(function() {
    $(".changeable").click(function() {
        var _old = $(this).attr("data-content") || "old";
        var _new = $(this).html();
        $(this).attr("data-content", _new);
        $(this).html(_old);
    });
})

编辑:这是您的解决方案:

我要做的是,将信息保存在当前id的位置,并在第二次单击时检索它

$(document).ready(function() {
var oldData = {};
$(".some_div").click(function () {
    var divId = $(this).attr("id");
    //Validate if the array contains old data.
    if(!oldData.hasOwnProperty(divId){
        //When using data attribute you can access them using .data()
        var divVideo = $(this).data("video"); 
        //Save current value in the array at the position of the current id.
        oldData[divId] = {
            'divVideo': divVideo,
            'html': $(this).html()
        };
        //Replace
        $(this).replaceWith('<div class="new_div" id="' + divId + '"  data-video="' + divVideo + '" > New div </div>');
    } else {
        //Replace the old HTML
        $(this).html(oldData[divId].html);
        //Replace old Video
        $(this).data("video", oldData[divId].divVideo);
    }
});
})
$(文档).ready(函数(){
var oldData={};
$(“.some_div”)。单击(函数(){
var divId=$(this.attr(“id”);
//验证阵列是否包含旧数据。
如果(!oldData.hasOwnProperty(divId){
//使用数据属性时,可以使用.data()访问它们
var divVideo=$(this).data(“video”);
//将当前值保存在数组中当前id的位置。
旧数据[divId]={
“divVideo”:divVideo,
'html':$(this.html())
};
//替换
$(this.replacetwith('newdiv');
}否则{
//替换旧的HTML
$(this.html(oldData[divId].html);
//替换旧视频
$(this).data(“视频”,oldData[divId].divVideo);
}
});
})

我可以用jQuerys切换功能来实现。但我不知道这是否是最好的解决方案

$(文档).ready(函数(){
$(“.toggle1”)。单击(函数(){
$(“.some_div1”).toggle();
});
$(“.toggle2”)。单击(函数(){
$(“.some_div2”).toggle();
});
$(.toggle3”)。单击(函数(){
$(“.some_div3”).toggle();
});
})

某个部门
新部门
某个部门
新部门
某个部门
新部门
试试这个:

$(function () {
$(".some_div").click(function () {
      var divId = $(this).attr("id");
      var divVideo = $(this).attr("data-video");
      var n = '<div class="new_div" id="' + divId + '"  data-video="' + divVideo + '" > New div </div>';
      var $old = $(this).attr("data-content") || n;
      var $new = $(this).html();
      $(this).attr("data-content", $new);
      $(this).html($old);
 });
});
$(函数(){
$(“.some_div”)。单击(函数(){
var divId=$(this.attr(“id”);
var divVideo=$(this.attr(“数据视频”);
var n=‘新div’;
var$old=$(this).attr(“数据内容”)| | n;
var$new=$(this.html();
$(this.attr(“数据内容”,$new);
$(this.html($old);
});
});

您可以将旧值保存在数组中,然后再次单击重新检索数组。我可以想象逻辑,但我尝试了许多无法实现的事情。因为我是jquery@Nicolasi的新手,我将添加一个我所想的响应,给我几分钟时间。我已经厌倦了您的代码,再次单击同一个div时它将恢复旧值。但我需要的是,当单击“某些分区显示新分区”和单击另一个“某些分区使用旧值还原新分区…”时:)对不起,我的英语不太好。您的代码工作正常,但问题是当我单击另一个some_div想要恢复新的_div…@user2983865时,您示例中的代码没有任何
new_div
s。您可能想要它,以便一次只能有一个吗?这是新的_div:
$(this).replacetwith('new div')是,单击某个分区时,我希望一次一个。。当再次单击某个div时想在那里显示新的div当我尝试你的代码不可单击时什么也没有发生我做了一些修改,并做了一些更改首先,你更改了div的类,因此它在
$('.some div')
选择器中不再可访问,你必须添加回你的Jquery监听器,因为它是动态添加的,最后我决定只替换HTML,因为我认为这是你唯一更改的内容。它现在可以工作,但当单击new_div时它会恢复,我需要的是,当单击其他某个_div想要恢复new_div时,好吧,你可以用同样的方法保存每个状态,然后再解决它们,我向你展示了我的想法,我不会为你编码。谢谢你,但我不想用css隐藏它,因为我想使用视频播放器,所以它会很重