【问题标题】:如何访问由动态变量 $('.' + classname) 选择的多个类名
【发布时间】:2022-01-23 02:30:47
【问题描述】:

我创建了一个表单来生成 urlname 和 urllink。 此表单生成三个元素: 1- span 元素(显示 urlname 和 html urllink) 2- 用 urlname 隐藏输入 3- 使用 urllink 隐藏输入。

fiddle

$(document).on("click", ".url_remove", function () {
    var refurllink = $(this).data("nburl");
    var allclasssameurl = $('.' + refurllink); // <- return [] or s.fn.init length 0
    //$(this).parent().closest('input[type=hidden]').find($('.' + refurllink)).remove();
    $('input[type=hidden]').find(allclasssameurl).remove(); //doesn't work
    $(this).parent().remove(); // works fine
}); // Delete link

问题:控制台显示 s.fn.init 长度为 0 或 [ ]

我不知道为什么会得到这个结果。 **我无法选择隐藏最接近跨度的两个输入。 **

【问题讨论】:

  • 如果您使用编辑器将其放入单个功能性 sn-p 中,这将更容易理解。

标签: jquery class variables dom dynamic


【解决方案1】:

问题已解决: 基于这个answer我找到了解决方案: jsfiddle updated 由于未知原因,jquery 必须知道有多少元素 (div) 使用此表达式 $('.' + classname)... (var classname)

   var refurllink = $(this).data("nburl");
   var allclasssameurl = $("." + refurllink);
   for(var i = 0; i < allclasssameurl.length; i++){
      $(allclasssameurl[i]).remove();
   }

如果我使用特定的类名,它与 var classname ('.urllinkref') 相同,它可以在不使用增量条件的情况下完美工作

如果有人能向我解释为什么 jquery 会做出这样的区分,感谢他。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 2021-01-03
    • 2012-11-22
    • 2022-04-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2017-11-01
    相关资源
    最近更新 更多