代码之家  ›  专栏  ›  技术社区  ›  sunics

jQuery在ul中查找li元素

  •  0
  • sunics  · 技术社区  · 1 年前

    我有一个函数,它应该从id标识的列表中删除li元素。 我使用jQuery和这个调用

    $("#selector").find("li[id='" + id.substring(4) + "']").remove();
    

    通话开始时点击了一个按钮。 在Firefox中,它工作起来没有问题。。。Chrome中没有。

    有人知道为什么吗?

    2 回复  |  直到 1 年前
        1
  •  0
  •   Heretic Monkey    1 年前

    这个问题可能是由于Chrome和Firefox处理某些JavaScript/jQuery功能的方式不同。请尝试以下操作:

    1:确保 id.substring(4) 返回正确的值。使用 console.log(id.substring(4)) 以进行验证。

    2:转义ID中的特殊字符:

    var safeId = id.substring(4).replace(/([!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g, "\\$1");
    $("#selector").find("li[id='" + safeId + "']").remove();
    

    3:将删除代码包装在setTimeout中以处理回流问题:

    setTimeout(function()
     {`enter code here`
        $("#selector").find("li[id='" + safeId + "']").remove();
    }, 0);
    
        2
  •  -1
  •   sunics    1 年前

    谢谢你的回答。

    到1:这是正确的值 to 2:我试过了,但不管用 至3:与2相同。

    进一步的想法?