大家好我在1页上有几个导航,看起来像这样:
<div class="menu">
<ul>
<li>link here</li>
<li>Link Here</li>
</div>
我在一页上有2或3个。
我很难让他们进入jquery中的select和options框。
如果我在页面上只有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("<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();
});
答案 0 :(得分:3)
您需要单独引用每个.menu
项目,而不是仅通过课程引用它。
以下代码的作用是:
对于DOM(页面)中的每个
.menu
- 创建
<select>
并将其附加到其上- 添加默认的
<option>
元素- 循环
内的相应<li>
以及<option>
<select>
醇>
演示: http://jsfiddle.net/5dm37/
<强>代码:强>
$('.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());
});
});
答案 1 :(得分:0)
clone之外的所有jQuery操作函数都会移动元素。
这意味着对于每个菜单类div,您需要创建一个新元素。创建一个元素会将其附加到第一个菜单类div。
EX:
$(".menu").each( function(index, element) {
//Create select and options here
$(element).append(SELECT);
});
答案 2 :(得分:0)
我注意到的一些事情:
<ul>
标记。这是无效的HTML。<select />
标记附加到使用jQuery选择器.menu
找到的元素。该选择器将所有元素与menu
类匹配。它不知道哪个元素与您尝试将其附加到菜单类,因此可能每次都将它附加到第一个。您需要缩小选择范围。执行此操作的最佳方法可能是为每个导航<div>
添加id
属性,并将其用作选择器。