正在将无序列表转换为选择..但有一个转折
Converting unordered list to select... but with a twist
我正在将无序列表转换为选项的选择菜单。
该 HTML:
<div class="dropdown-container converted">
<button class="button__black __small" data-dropdown="drop1" aria-controls="drop1" aria-expanded="false">Artist <img src="{site_url}/do-not-enter-or-modify-or-erase/site-theme/img/dropdown-arrow.png" alt="Dropdown" /></button>
<ul id="drop1" class="f-dropdown mega book-filter-dropdown category-dropdown" data-dropdown-content aria-hidden="true" tabindex="-1">
<li><a href="#">Item 1</a></li>
<li class="active"><a class="active" href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
</div>
还有Javascript:
// Create the dropdown base
$("<select />").appendTo(".converted");
//Create default option "Go to..."
$("<option />", {
"selected": "selected",
"value" : "catalog/products",
"text" : "All Artists"
}).appendTo(".converted select");
// Populate dropdown with menu items
$(".converted a").each(function() {
var el = $(this);
$("<option />", {
"value" : el.attr("href"),
"text" : el.text()
}).appendTo(".converted select");
});
$(".converted select").change(function() {
window.location = $(this).find("option:selected").val();
});
我希望具有"活动"类的列表项作为带有"选定=选定"的选项显示在选择下拉列表中。
我该怎么做?
你应该有 attr selected=true|false
。要么像el.prop('selected', true|false)
一样查看 $.prop,要么在创建元素时传入值:
$("<option />", {
"value" : el.attr("href"),
"text" : el.text(),
"selected": el.hasClass("active")
}).appendTo(".converted select");
您可以通过在
.each()
部分中为active
类添加检查来实现此目的。另外,我.appendTo()
建议从.each()
因为追加到 DOM 是一项非常昂贵的操作,所以您需要做的是在 .each()
中创建一个元素数组,然后一次性附加该数组。
考虑有这样的东西:
var lis = $('#drop1').children('li'),
target = $('.target'),
options = [],
$element;
lis.each(function(index, element){
$element = $(element);
options.push($("<option />", { "value" : $element.attr("href"), "text" : $element.text(), "selected": $element.hasClass('active') }));
});
target.append(options)
这可以在这里在线看到:http://jsfiddle.net/3n34g90q/
相关文章:
- 我有多个复选框,并希望为其中 2 个制定规则,以便如果我选择 1 个,则无法选择另一个
- 正在将无序列表转换为选择..但有一个转折
- 如果所有单选框在jQuery中都有一个选择,则显示一个元素
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 我如何在 html 中复制(甚至有一个按钮来选择它)一个 document.getelementbyid 输出字段
- 如何创建 HTML 文本框,该文本框顶部有一个水平菜单选项卡可供选择
- 我有一个 HTML 多选框,之前没有选择任何内容.我需要验证是否应该在 javascript 中至少选择一个
- 在 CSS 中有一个单独的伪选择器,以显示有关一行中多个元素的信息
- 我有一个表单,我想隐藏一些文本字段,直到在下拉菜单上选择一个选项 y
- 我有一个带有选择的表单,可以创建元素.我怎么能做到这一点元素只创建一次
- 是否有一个 jQuery 选择器查找不存在的子字符串
- jQuery填充的日期选择器有一个月不同步
- 文档选择中的索引错误,而所选文本有一个点
- 选择除隐藏之外的所有输入(但有一个例外)
- 检查我选择的标记中是否有一个更改为具有相同的类
- 是否有一个js事件在选择开始时被触发
- 如果至少有一个输入具有值或某个选择更改了默认值,则启用/禁用切换按钮
- 当类型=“0”时,我怎么能有一个预先选择的输入;文件”;
- 我有DIV和它的子DIV,我想用jQuery选择最后一个DIV.父DIVS具有id
- 使用jquery选择一个选项,并且在select元素中也有一个onchange()