如何将无序列表转换为<选择>下拉列表使用jquery
How to convert unordered list into <select> dropdown using jquery?
如何将无序列表转换为这种格式的
<ul class="selectdropdown">
<li><a href="one.html" target="_blank">one</a></li>
<li><a href="two.html" target="_blank">two</a></li>
<ul>
<li><a href="twoOne.html" target="_blank">two One</a></li>
<ul>
<li><a href="twoOneOne.html" target="_blank">two One One</a></li>
</ul>
<li><a href="twoTwo.html" target="_blank">twoTwo</a></li>
</ul>
<li><a href="three.html" target="_blank">three</a></li>
<li><a href="four.html" target="_blank">four</a></li>
<li><a href="five.html" target="_blank">five</a></li>
<li><a href="six.html" target="_blank">six</a></li>
<li><a href="seven.html" target="_blank">seven</a></li>
</ul>
我想将此结构转换为<select>
结构
jquery代码
jQuery('.selectdropdown li a').each(function() {
var el = jQuery(this);
jQuery('<option />', {
"value" : el.attr('href'),
"text" : el.text()
}).appendTo('#top select');
});
if (jQuery('.selectdropdown li a').length < 1) jQuery('#top').hide();
jQuery('#top').find('select').change(function() {
window.location = jQuery(this).find('option:selected').val();
});
HTML
<div id="top">
<select></select>
</div>
这是小提琴小提琴链接
试试这样的东西:
ul.dark_menu {
list-style: none;
padding: 5px 1px;
font-family: 'Segoe UI Light', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
font-weight: 200;
font-size: 16px;
letter-spacing: 0.01em;
font-smooth: always;
color: #000000;
line-height: 15px;
margin: auto;
width: 1018px;
position: relative;
background: #2B5797;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu:after {
content: "";
clear: both;
display: block;
overflow: hidden;
visibility: hidden;
width: 0;
height: 0;}
ul.dark_menu li {
float: left;
position: relative;
margin: 1px;}
/* Blog johanes djogzs.blogspot.com */
ul.dark_menu li a, ul.dark_menu li a:link {
color: #fafafa;
text-decoration: none;
display: block;
padding: 8px 26px;
-webkit-transition: all 0.2s ease;
-moz-transition: all 0.2s ease;
-o-transition: all 0.2s ease;
-ms-transition: all 0.2s ease;
transition: all 0.2s ease;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu li a:hover {
color: #fafafa;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu li a.selected {
border-right: 1px solid #ddd;
text-transform: uppercase;
margin-left: 10px;
}
ul.dark_menu li a.selected, ul.dark_menu li a:active {
color: #fafafa;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;}
ul.dark_menu li ul {
display: none;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu li ul:before {
content: " ";
position: absolute;
display: block;
z-index: 1500;
left: 0;
top: -10px;
height: 10px;
width: 100%;}
ul.dark_menu li ul {-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;top:55px;}
ul.dark_menu li:hover ul {
position: absolute;
display: block;
z-index: 1000;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
left: 0;border-radius: 0px 0px 5px 5px;
top: 37px;
padding: 5px 0;
list-style: none;
background: #fff;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu li ul li {
float: none;
margin:0px;}
ul.dark_menu li ul li:first-child {
margin:0px;
border-top: 0 none;}
ul.dark_menu li ul li:last-child {
border-bottom: 0 none;
}/* Blog johanes djogzs.blogspot.com */
ul.dark_menu [data-role="dropdown"] > a::before {
position: absolute;
content: "^";
display: block;
font-size: 15px;
left: 100%;
margin-left: -20px;
top: 10px;
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
ul.dark_menu li ul li a, ul.dark_menu li ul li a:link {
color: #222;
display: block;
background: transparent none;
padding: 10px 25px 10px 25px;
white-space: nowrap;}
ul.dark_menu li ul li a:hover {
background:#2D89EF;-moz-transition: all 0.1s ease-in-out;color:#fff;
-webkit-transition: all 0.1s ease-in-out;
}/* Blog johanes djogzs.blogspot.com */
.menujohanes{position:relative;}
#search input[type="text"]:hover {width:848px;}
#search input[type="text"] {
background: #fff url("http://3.bp.blogspot.com/-uYZni0pIn-E/T-xY2vVu_-I/AAAAAAAACUY/ZMfR3_BvRFE/s1600/SEARCH_32x32-32.png")no-repeat center left;
font-size: 13px;
color: #222;
width: 0px;
padding: 10px 0px 11px 35px;
z-index: 9;
border: 1px solid #fff;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
margin-bottom: -1px;
position: absolute;
top: 0px;
right:27px;}
#main4, #main5, #main6 {
width: 303px;
list-style-type: none;
float: left;
margin: 10px;}
.main3 {width:305px;
list-style-type: none;
padding-top: 10px;
float: left;}
::-webkit-scrollbar {
height:12px;
background: #474747;}
::-webkit-scrollbar-thumb {
background-color: #000;
}
li#sub ul {
display:none;
position: absolute; left: 100%; top:0;
}
li#sub:hover ul{
display: block;
}
<div class='menujohanes'>
<ul class='dark_menu'>
<li data-role='dropdown'>
<a href='#'>
Categories
</a>
<ul>
<li id='sub'>
<a href='#'>
Lorem ipsum
</a>
<ul>
<li>
<a href='#'>
Categories2
</a></li><li>
<a href='#'>
Categories3
</a></li>
</ul>
</li>
<li>
<a href='#'>
Lorem ipsum
</a>
</li>
<li>
<a href='#'>
Lorem ipsum
</a>
</li>
<li>
<a href='#'>
Lorem ipsum
</a>
</li>
<li>
<a href='#'>
Download
</a>
</li>
<li>
<a href='#'>
Lorem ipsum
</a>
</li>
</ul>
</li>
</ul>
<form action='/search' id='search' method='get'>
<input name='q' placeholder='Search Somethings..' size='40' type='text'/>
</form>
</div>
从这里获得帮助:
我最近创建了这样的东西,请查看:
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#dropdownSelect").click(function(){
$("#multiSelect").slideToggle("fast");
});
});
</script>
<style>
#dropdownSelect{
cursor:pointer;
color:#000;
padding:7px 20px;
width:400px;
}
#dropdownSelect p{
background: #eee;
width:400px;
}
#multiSelect{
display:none;
height:150px;
background:#ccc;
z-index:1;
overflow:auto;
position:absolute;
width:400px;
color:#000;
top:60px;
left:28px;
}
#multiSelect ul {
list-style:none;
text-decoration:none;
padding-left:10px;
}
#multiSelect li>ul{
list-style:none;
text-decoration:none;
padding-left: 10px;
cursor:pointer;
}
</style>
</head>
<body>
<dl>
<dt id="dropdownSelect">
<p>Choose</p>
</dt>
<dd>
<div id="multiSelect">
<ul>
<li>Link-1</li>
<li>Link-2</li>
<li>Link-3</li>
</ul>
</div>
</dd>
</dl>
</body>
有一个非常方便的插件,它可以将您的select元素变成一个无序的列表。我一直用它,因为它很性感,速度也很快。
http://code.octopuscreative.com/fancyselect/
相关文章:
- Div根据<选择>菜单
- 如何更改<选择>使用angularJS从控制器获得的值
- 当<选择的选项>重新选择
- 依赖<选择>HTML和JavaScript菜单
- 选择<李>使用普通JavaScript的子节点,而不是孙节点
- 如何传递相同页面<选择>值到同一页<f: param>
- 渲染<选项值=“;foo”;选择>在服务器上
- <选择>标签不起作用
- 当我有<选择>下拉列表
- 记住<选择>重新加载页面
- <中的链接;选择>下拉选项
- 映射多个<选择>至<输入>
- <上的applyBindings();选择>正在导致我的subscribe()起火,
- 触发器<输入类型=“;文件“>用angular程序选择文件
- 如何动态生成X数量的新<输入>基于a<选择>(Angular2内)
- 在<选择>使用angular ng选项可能使用ng init
- 如何在提交<选择>与AngularJS
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 使用动态<选择>以显示<输入类型=“;文本>
- 正在读取<p: 选择一个菜单/>在onchange回调中