Javascript 多下拉值引导

Javascript 多下拉值引导,javascript,jquery,html,Javascript,Jquery,Html,您好,我正在尝试将ul>li转换为select>选项,如果我在下拉列表中选择了第一个选项,应该可以查看它。我已经完成了,但是当我在一个页面中使用它两次时,我得到了错误 $(“.dropdown menu”)。在('click','li a',function()上{ $(“.btn:first child”).text($(this.text()); $(“.btn:first child”).val($(this.text()); }); *{ 边界半径:0!重要; } 李{ 列表样式:无;

您好,我正在尝试将
ul>li
转换为
select>选项
,如果我在
下拉列表
中选择了第一个选项,应该可以查看它。我已经完成了,但是当我在一个页面中使用它两次时,我得到了错误

$(“.dropdown menu”)。在('click','li a',function()上{
$(“.btn:first child”).text($(this.text());
$(“.btn:first child”).val($(this.text());
});
*{
边界半径:0!重要;
}
李{
列表样式:无;
}



  • 设置值和文本时,将替换与该选择器匹配的所有dom节点。试着这样做

    $(".dropdown-menu").on('click', 'li a', function(e){
      $(".btn:first-child", $(e.target).closest('.dropdown')).text($(this).text());
      $(".btn:first-child", $(e.target).closest('.dropdown')).val($(this).text());
    });
    

    设置值和文本时,将替换与该选择器匹配的所有dom节点。试着这样做

    $(".dropdown-menu").on('click', 'li a', function(e){
      $(".btn:first-child", $(e.target).closest('.dropdown')).text($(this).text());
      $(".btn:first-child", $(e.target).closest('.dropdown')).val($(this).text());
    });
    

    要更改下拉列表的标题,只需更改文本属性,而不需要更改值

    此外,您的下拉列表包含一个标题和一个字形图标(即:插入符号)。如果要保留下拉列表外观,则无法更改此元素

    这意味着:

    • 获取与当前单击的元素对应的下拉元素: $(此).closest(“.dropdown”)
    • 在该片段中找到按钮: $(this).最近('.dropdown')。('.btn'))
    • 使用以获取所有dom元素(1.文本节点:标题;2.跨度节点:跨度节点;3.文本节点:新行)
    • 此列表按节点类型==textNode,文本内容不为空
    片段:

    $(“.dropdown menu”)。在('click','li a',function()上{
    $(this).closest('.dropdown').find('.btn').contents().filter(函数(idx,ele){
    返回this.nodeType==Node.TEXT\u Node&&this.textContent.trim().length!=0;
    }).get(0).textContent=this.textContent+'';
    });
    
    *{
    边界半径:0!重要;
    }
    李{
    列表样式:无;
    }
    
    


  • 要更改下拉列表的标题,只需更改文本属性,而不需要更改值

    此外,您的下拉列表包含一个标题和一个字形图标(即:插入符号)。如果要保留下拉列表外观,则无法更改此元素

    这意味着:

    • 获取与当前单击的元素对应的下拉元素: $(此).closest(“.dropdown”)
    • 在该片段中找到按钮: $(this).最近('.dropdown')。('.btn'))
    • 使用以获取所有dom元素(1.文本节点:标题;2.跨度节点:跨度节点;3.文本节点:新行)
    • 此列表按节点类型==textNode,文本内容不为空
    片段:

    $(“.dropdown menu”)。在('click','li a',function()上{
    $(this).closest('.dropdown').find('.btn').contents().filter(函数(idx,ele){
    返回this.nodeType==Node.TEXT\u Node&&this.textContent.trim().length!=0;
    }).get(0).textContent=this.textContent+'';
    });
    
    *{
    边界半径:0!重要;
    }
    李{
    列表样式:无;
    }
    
    


  • 您收到了哪个错误?我更新了代码,请检查:)您收到了哪个错误?我更新了代码,请检查:)