【问题标题】:How to store selection and span to local storage?如何将选择和范围存储到本地存储?
【发布时间】:2015-04-30 02:08:47
【问题描述】:

我有一个包含三个不同选项的选择列表。

当用户选择一个城市时,我想显示一个基于所选选项的价格范围。

我也在尝试将选定的选项保存在 localStorage 中,因此如果您刷新页面,选项将保持选中状态,并且正确的价格范围保持可见。

这就是我所拥有的:

HTML

<select name="city" id="city">
    <option value="NY">New York</option>
    <option value="London">London</option>
    <option value="Paris">Paris</option>
</select>


<span id="related_ny_price">New York price</span>

<span id="related_london_price">London price</span>

<span id="related_paris_price">Paris price</span>

JS

    $('[id^="related"]').not(':first').hide();

    $("#city").on('change', function() {

--------------------------------------------        

$("#related_"+this.value+"_price").show().siblings('[id^="related"]').hide();
    });

    $(document).ready(function() {

        var item = window.localStorage.getItem('city');
        $('select[name=city]').val(item);

        $('select[name=city]').change(function() {
           window.localStorage.setItem('city', $(this).val());
        });

    });

【问题讨论】:

    标签: javascript jquery html local-storage


    【解决方案1】:

    DOM 中没有名称为 citya 的元素。其次,您尝试获得 paikkakunta 在 localstorage 对象中不存在。你必须按照你设定的方式来获得这座城市。

    html

    <select name="city" id="city">
        <option value="NY">New York</option>
        <option value="London">London</option>
        <option value="Paris">Paris</option>
    </select>
    <span id="related_ny_price">New York price</span>
    
    <span id="related_london_price">London price</span>
    
    <span id="related_paris_price">Paris price</span>
    

    js

    $('[id^="related"]').not(':first').hide();
    
    $("#city").on('change', function() {
      $("#related_" + this.value + "_content").show().siblings('[id^="related"]').hide();
    });
    
    $(document).ready(function() {
    
      //get city
      var item = localStorage.getItem('city');
      $('select[name=city]').val(item);
    
      //change the selector. There is no element with name citya in DOM
      $('select[name=city]').change(function() {
        //set city
        localStorage.setItem('city', $(this).val());
      });
    
    });
    

    fiddle

    【讨论】:

    • 谢谢。我修正了那些错别字。另外 #related_" + this.value + "content 应该是 #related"+this.value+"_price 现在它存储选择,但是is 在刷新时显示第一个跨度。
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2017-10-21
    相关资源
    最近更新 更多