jquery下拉菜单,jquery怎么优化 下拉菜单效果
大家好,今天我将为大家揭秘jquery下拉菜单和jquery怎么优化 下拉菜单效果的奥秘,希望我的分享能给你带来新的启发和知识。
jQuery Ajax 下拉菜单问题
假设需要在表格中设置为:A列下拉列表选择型号,B列下拉列表选择对应A列单元格型号的规格;
1、建立“菜单表”,设置型号、规格对应的菜单序列
见图一
2、设置名称:
1)选中A2:A6单元格,点击右键,选择:定义名称,在"名称"栏中输入:分类
见图二
2)选中B3:B6单元格,点击右键,选择:定义名称,在"名称"栏中输入:型号1
见图三
3)选中C3:C6单元格,点击右键,选择:定义名称,在"名称"栏中输入:型号2
见图四
4)选中D3:D6单元格,点击右键,选择:定义名称,在"名称"栏中输入:型号3
见图五
5)选中E3:E6单元格,点击右键,选择:定义名称,在"名称"栏中输入:型号4
见图六
6)转到“公式”工具栏。点击名称管理器;
可以看到刚才定义的名称列表;
见图七
3、转到“操作表”,选中A列需要下拉列表输入的单元格范围,转到“数据”工具栏,点击:数据有效性>数据有效性;
见图八
4、在跳出来的“数据有效性"对话框中,“允许”选择:序列,“来源”输入公式:=分类;再点确定;
见图九
5、选中B列需要下拉列表输入的单元格范围,转到“数据”工具栏,点击:数据有效性>数据有效性,在跳出来的“数据有效性"对话框中,“允许”选择:序列,“来源”输入公式:=INDIRECT($A2);再点确定;
见图十
6、在点击确定后会跳出来源错误的出错对话框,直接点确定,那是因为A列中还没有选择型号;
见图十一
7、效果检查:
1)在A列单元格下拉选择型号;
见图十二
2)在对应的B列单元格点击下拉箭头,这时会看到可以选择和A列型号有关的规格;
见图十三
说明:这种编程方法,还可以建立多级选择菜单,以方便输入
用jquery实现三级下拉菜单联动时,菜单三无法显示。
class_array是一个二维数组,看你代码的意思。。当第1个下拉菜单
触发change事件时,即
if(v[2]==$("#pard1").val())
$("<option
value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard2"));
这是表示传入的数组v的第三个元素等于第1个下拉菜单的值时,才会将第2个下拉菜单填充。
我看v数组的第三个元素的值有0,1,14,但是又要与第1个下拉菜单的值相等的唯有class_array[0]=new
Array('1','护肤','0');所以,在第1个下拉菜单选择'护肤'才会对第二个下拉菜单有联动效果
如何获取下拉列表选中的值 jquery
<select onchange="isSelected(this.value);" id="city">
<option
value="1">北京</option>
<option value="2">上海</option>
<option value="2">广州</option>
</select>
也就是说当用户选择“上海”这一列时,需要将“上海”这个名称保存起来。其实方法很简单。看下面javascript代码:
function isSelected(value){
var cityName;
var city=
document.getElementById("city");
//获取选中的城市名称
for(i=0;i<city.length;i++){
if(city[i].selected==true){
cityName
= city[i].innerText;//关键点
alert("cityName:"+ cityName);
}
}
也可以这样做:
function isSelected(value){
var city= document.getElementById("city");
alert(city.options[city.selectedIndex].innerText);
}
大致解释一下,首先在HTML页面上有一个下拉框,并为此下拉框定了一个“city”的id,并为其绑定了一个onchange事件,通过此事件调用javascript函数。
在javascript函数当中,通过domcument对象获取当前下拉框的节点元素,由于节点的值并非只有一个,所以我们可以通过循环节点来得到每个选项的值。在循环的时候通过判断当前选项是否选中,如果选中则使用city[i].innerText
方式获取当前所选中的文本值。当然如果需要获取选项值,只需如此即可:city[i].value.
至此,通过以上方法在IE下已能达到所要的结果。但是,在FIREFOX下测试时,发现此法不起作用,最后通过查阅资料发现另外一个方法。将city[i].innerText
改为 city[i].text即可。这种方法对IE及FIXEFOX都适用!
jquery怎么优化 下拉菜单效果
下拉菜单的默认样式在不同类型的浏览器中显示的效果非常不同,单纯的用css来统一样式可能非常有局限性,使用Jquery+css优化起来不但简单,而且实用性也非常广,主要原理为设置select透明度为0,利用css样式把span美化成select的样式,利用jquery把select选择的option的值传给span。
下面就是jquery优化下拉菜单效果的具体实现代码:
Html<aclass="btn-select">
<spanclass="cur-select">请选择</span>
<selectclass="form-control">
<option>这是IE浏览器下的默认显示效果</option>
<option>这是Firefox浏览器下的默认显示效果</option>
<option>这是Opera浏览器下的默认显示效果</option>
<option>这是chrome浏览器下的默认显示效果</option>
</select>
</a>
CSS
.btn-select{
position:relative;
display:block;
height:30px;
line-height:30px;
border:1pxsolid#ccc;
color:#3D3F42;
}
.btn-select.cur-select{
position:absolute;
display:block;
width:100%;
height:25px;
line-height:25px;
background:url(/Themes/Employee/Content/images/ico.png)no-repeat98%45%transparent;
text-indent:10px;
}
.searchInselectW.store-selector.btn-select:hover{
background:#fff;
color:#3D3F42;
}
.btn-select:hover,.cur-select:hover{
color:#3D3F42;
}
.btn-selectselect{
position:absolute;
top:0;
left:0;
height:30px;
opacity:0;
filter:alpha(opacity=0);
}
.btn-selectselectoption{
text-indent:10px;
}
.btn-selectselectoption:hover{
color:#fff;
}Jquery
$(function(){
$(document).on("change",function(){
$("select").each(function(){
var$selectText=$(this).children("option:selected").text();
$(this).parent().find("span").text($selectText);
});
});
}
感谢您的阅读!希望本文对解决您关于jquery下拉菜单和jquery怎么优化 下拉菜单效果的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。