jquery 如何检查div id的值是否等于localstorage中的值

nnvyjq4y  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(95)

我需要用localstorage值验证div元素ID。如果为true,则需要显示错误消息。当我console.log的值的每一个他们是相同的,但当我console.log比较两者它返回false。
我不知道我做错了什么。

<div id="test"></div>

$('button').on('click', function(){
    var parentEl = $('div').attr('id');
    localStorage.setItem('contentid', 'test');
    if($(parentEl) == localStorage.getItem('contentid')) {
        console.log('id === localstorage', $(parentEl) == localStorage.getItem('contentid'));
        console.log('local', localStorage.getItem('contentid'));
        console.log('id', parentEl);
        console.log('can\t go next');
    } else {
        console.log('go next');
    }
});

字符串

ncecgwcz

ncecgwcz1#

正如我在注解中所说,不能将Object与localStorage返回的String值进行比较。因此请使用实际的ID字符串,而不是$(parentEl) == localStorage.getItem('contentid')

if ( parentEl === localStorage.getItem('contentid') ) {

字符串
为什么要在每次按钮单击时都将相同的localStorage值重新设置为“test”?localStorage.setItem('contentid', 'test');看起来很奇怪。
var parentEl = $('div').attr('id');是什么?$('div')可以是文件中的任何DIV。您需要选择一个特定的按钮,如按钮的父级?
在这种情况下,用途:

localStorage.setItem('contentid', 'test'); // Save to LS

$('button').on('click', function(){

    const $parent = $(this).closest('.parent'); // Get button's closest DIV by class ".parent"
    if (!$parent.length) return; // No such .parent was found. Do nothing
    
    const id = $parent.attr("id");
    const idLS = localStorage.contentid;
    
    if(id === idLS) {
      console.log("Parent ID is: 'test'");
    } else {
      console.log(`Parent ID is: ${id}`);
    }
});
<div class="parent" id="test">
  Some parent wrapper
  <button type="button">Click me</button>
</div>

的数据

相关问题