Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 会话存储返回null_Javascript_Jquery_Null - Fatal编程技术网

Javascript 会话存储返回null

Javascript 会话存储返回null,javascript,jquery,null,Javascript,Jquery,Null,我试图实现这段代码,但在我的控制台中,它说东西是空的,这很奇怪,因为当我在控制台中查看时,sessionStorage不是空的 $(".btn-alert").click(function(){ var identifierOfSpan = $(this > "span").text(); for(var prop in sessionStorage){ var thing = JSON.parse(sessionStorage.ge

我试图实现这段代码,但在我的控制台中,它说东西是空的,这很奇怪,因为当我在控制台中查看时,sessionStorage不是空的

$(".btn-alert").click(function(){
        var identifierOfSpan = $(this > "span").text();
        for(var prop in sessionStorage){
            var thing = JSON.parse(sessionStorage.getItem(prop))
            if(thing.id == identifierOfSpan){
                sessionStorage.removeItem(prop);                    
            }
        }
        $(this).closest(".voyages").remove();
        if(sessionStorage.length == 0){
            alert("Message!");
            location.href="reservation.html"

        }
    });
该按钮应该删除div和sessionStorage项,如下所示

Html:

  <div class="voyages">
<button class="btn btn-alert btn-md mr-2" tabindex="-1">delete the flight</button>
<span>ID : 4224762</span>
<div class="infos">
    <img src="img/angleterre.jpg" alt="maroc">
    <div>
        <ul>
            <li><h5>Angleterre, Londres (LON)</h5></li>
            <li><h5>2 adulte(s)</h5></li>
            <li><h5> Aucun enfants </h5></li>
            <li><h5>Type : Couple</h5></li>
        </ul>
    </div>
</div>
<hr>
<h3>Options</h3>
<ul>
    <li>voiture : 0</li>
    <li>Hotel : 0 </li>
</ul>
<hr>
<h3>Prix :3713$</h3>

删除航班
身份证号码:4224762
  • 朗德雷斯安格尔特尔(伦敦)
  • 2个成人
  • 奥村儿童
  • 类型:夫妇

选择权
  • 投票:0
  • 酒店:0

大奖赛:3713$

如果我没看错你的问题,你想

  • 点击按钮
  • 找到第一个同级
    元素并从其文本内容中解析一个数字
  • 删除所有具有匹配
    id
    属性的
    sessionStorage
    项(JSON序列化对象)
  • 对于ID,我强烈建议直接向
    添加一些数据,以帮助您识别正确的记录。如果可以的话,试试类似的方法

    <button class="btn btn-alert btn-md mr-2" data-voyage="4224762"...
    

    sessionStorage
    上使用
    for..in
    循环的问题在于,您不仅可以添加任何项目键,而且还可以

    • 长度
    • getItem
    • setItem
    • removietem
    • 清除

    很可能是因为console向您显示的是实时对象,而不是记录点处的对象,但这似乎是一个错误,不是吗?如何修复此问题?不是错误,只是非直观的实现。我真的不会将
    for..in
    会话存储一起使用。如果要迭代,请使用
    key()
    来代替~另外,这意味着要计算什么<代码>$(此>“span”)
    。这可能永远是
    $(false)
    ,这不会让你走得太远。你的代码很棒,但有些细节你不了解,我试图单击按钮删除一个div,并删除sessionStorage中与span id匹配的对象,因此如果第一个id为2,则应删除sessionStorage中具有id的项目:2@PostMaloneM3m3r我不知道我怎么会错过这些。带“和您代码的其余部分”的部分是您将删除
    @PostMaloneM3m3r的部分。我现在已将您代码的其余部分包含在我的答案中。希望如此clear@PostMaloneM3m3r“它不起作用”这个词太宽泛了,不能用。它到底是怎么不起作用的?你做了什么调试?也许
    的文本内容并不完全正确。例如,您可能需要修剪它(我将更新我的答案)。你可以在你的问题中提供相关的HTML,我会编辑我的代码来添加HTML,这样你就会明白我想做什么