Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取所有菜单时遇到问题>;jquery中的li_Javascript_Jquery - Fatal编程技术网

Javascript 获取所有菜单时遇到问题>;jquery中的li

Javascript 获取所有菜单时遇到问题>;jquery中的li,javascript,jquery,Javascript,Jquery,大家好,我在1页上有一些导航,如下所示: <div class="menu"> <ul> <li>link here</li> <li>Link Here</li> </div> 链接此处 链接此处 我在一页上有2或3个 我很难让它们进入jquery中的选择和选项框 如果我在一个页面上只有1个菜单,它可以100%工作,但因为我在一个页面上有2或3个菜单,有时它只将第一个菜单输入到所有下拉选择框中

大家好,我在1页上有一些导航,如下所示:

<div class="menu">
 <ul>
  <li>link here</li>
 <li>Link Here</li>
</div>

  • 链接此处
  • 链接此处
我在一页上有2或3个

我很难让它们进入jquery中的选择和选项框

如果我在一个页面上只有1个菜单,它可以100%工作,但因为我在一个页面上有2或3个菜单,有时它只将第一个菜单输入到所有下拉选择框中

以下是jquery:

jQuery("<select />").appendTo(".menu");
    jQuery("<option />", {"selected": "selected","value"   : "","text" : "Navigation Menu"}).appendTo(".menu select");
    jQuery(".menu ul li a").each(function() {

        var el = jQuery(this);
        jQuery("<option />", {"value"   : el.attr("href"),"text"    : el.text()}).appendTo(".menu select");
    });

    jQuery(".menu select").change(function() {

        window.location = jQuery(this).find("option:selected").val();
    });
jQuery(“”.appendTo(“.menu”);
jQuery(“,{”选定“:”选定“,”值“:”文本“:”导航菜单“}).appendTo(“.Menu选择”);
jQuery(“.menu ul li a”)。每个(函数(){
var el=jQuery(this);
jQuery(“,{”value:el.attr(“href”),“text:el.text()}).appendTo(“.menu select”);
});
jQuery(“.menu select”).change(函数(){
window.location=jQuery(this.find)(“选项:选中”).val();
});
我知道它的意思是看起来像这样,但它只是抛出错误

jQuery("<select />").appendTo(".menu");
    jQuery("<option />", {"selected": "selected","value"   : "","text" : "Navigation Menu"}).appendTo(".menu select");

    var showlis = 'ul li a';
    jQuery(this + showlis).each(function() {

        var el = jQuery(this);
        jQuery("<option />", {"value"   : el.attr("href"),"text"    : el.text()}).appendTo(".menu select");
    });

    jQuery(".menu select").change(function() {

        window.location = jQuery(this).find("option:selected").val();
    });
jQuery(“”.appendTo(“.menu”);
jQuery(“,{”选定“:”选定“,”值“:”文本“:”导航菜单“}).appendTo(“.Menu选择”);
var showlis=‘ul li a’;
jQuery(this+showlis).each(function(){
var el=jQuery(this);
jQuery(“,{”value:el.attr(“href”),“text:el.text()}).appendTo(“.menu select”);
});
jQuery(“.menu select”).change(函数(){
window.location=jQuery(this.find)(“选项:选中”).val();
});

克隆移动元素之外的所有jQuery操作函数

这意味着您需要为每个菜单类div创建一个新元素。创建一个元素将把它附加到第一个菜单类div

例:


克隆移动元素之外的所有jQuery操作函数

这意味着您需要为每个菜单类div创建一个新元素。创建一个元素将把它附加到第一个菜单类div

例:


您需要单独引用每个
.menu
项,而不是仅通过类引用它

以下代码的作用是:

对于DOM(第页)中的每个
。菜单

  • 创建一个
    并附加到它上面
  • 添加默认的
    元素
  • 循环通过
  • 中相应的
  • 演示:

    代码:

    $('.menu').each(function() {
        var menu = $(this);
        var sel = $("<select />").appendTo(menu);
        $("<option />", {
            "selected": "selected",
            "value": "",
            "text": "Navigation Menu"
        }).appendTo(sel);
        menu.find('li').each(function() {
            $("<option />", {
                "value": $(this).attr("href"),
                "text": $(this).text()
            }).appendTo(sel);
        });
        sel.change(function() {
            alert($(this).val());    
        });
    });
    
    $('.menu')。每个(函数(){
    变量菜单=$(此);
    变量sel=$(“”)。附加到(菜单);
    $("", {
    “已选定”:“已选定”,
    “价值”:“,
    “文本”:“导航菜单”
    }).附录(sel);
    menu.find('li')。每个(函数(){
    $("", {
    “值”:$(this.attr(“href”),
    “文本”:$(this).text()
    }).附录(sel);
    });
    选择更改(函数(){
    警报($(this.val());
    });
    });
    
    您需要单独引用每个
    .menu
    项,而不是仅通过类引用它

    以下代码的作用是:

    对于DOM(第页)中的每个
    。菜单

  • 创建一个
    并附加到它上面
  • 添加默认的
    元素
  • 循环通过
  • 中相应的
  • 演示:

    代码:

    $('.menu').each(function() {
        var menu = $(this);
        var sel = $("<select />").appendTo(menu);
        $("<option />", {
            "selected": "selected",
            "value": "",
            "text": "Navigation Menu"
        }).appendTo(sel);
        menu.find('li').each(function() {
            $("<option />", {
                "value": $(this).attr("href"),
                "text": $(this).text()
            }).appendTo(sel);
        });
        sel.change(function() {
            alert($(this).val());    
        });
    });
    
    $('.menu')。每个(函数(){
    变量菜单=$(此);
    变量sel=$(“”)。附加到(菜单);
    $("", {
    “已选定”:“已选定”,
    “价值”:“,
    “文本”:“导航菜单”
    }).附录(sel);
    menu.find('li')。每个(函数(){
    $("", {
    “值”:$(this.attr(“href”),
    “文本”:$(this).text()
    }).附录(sel);
    });
    选择更改(函数(){
    警报($(this.val());
    });
    });
    
    我注意到以下几点:

  • 不确定这是否只是复制粘贴错误,但在导航菜单中,您没有关闭标签。这是无效的HTML
  • 这可能是您的问题。您正在将新的
    标记附加到使用jQuery选择器
    菜单找到的元素。该选择器将所有元素与
    菜单
    类匹配。它不知道要将它附加到菜单类的哪个元素,所以每次它可能都会将它附加到第一个元素。您需要缩小选择器的范围。最好的方法可能是为每个导航
    指定一个
    id
    属性,并将其用作选择器
  • 我很不明白你为什么要这么做。您已经有了导航列表,为什么还要在其中添加下拉列表
  • 我注意到以下几点:

  • 不确定这是否只是复制粘贴错误,但在导航菜单中,您没有关闭标签。这是无效的HTML
  • 这可能是您的问题。您正在将新的
    标记附加到使用jQuery选择器
    菜单找到的元素。该选择器将所有元素与
    菜单
    类匹配。它不知道要将它附加到菜单类的哪个元素,所以每次它可能都会将它附加到第一个元素。您需要缩小选择器的范围。最好的方法可能是为每个导航
    指定一个
    id
    属性,并将其用作选择器
  • 我很不明白你为什么要这么做。您已经有了导航列表,为什么还要在其中添加下拉列表

  • 在所有这些行中添加空格并不意味着
    这篇
    绑定到
    的上下文中。菜单
    这篇文章质量很差,也很混乱。您没有有效的HTML示例。
    缺失,您引用的任何地方都没有
    a
    元素