select{
position:relative; z-index:1;
appearance:none;
-moz-appearance:none; / Firefox /
-webkit-appearance:none; / Safari 和 Chrome /
}
dispear{
width: 30px;
height: 20px;
background: #FFF;
position: relative;
z-index: 4;
left: 35px;
top: -20px;
}
</style>
<body>
<select>
<option>百度</option>
<option>ffff</option>
<option>ffff</option>
<option>ffff</option>
<option>ffff</option>
<option>ffff</option>
<option>ffff</option>
<option>ffff</option>
</select>
<div class="dispear"></div></body>
这个问题最好应该在后台中处理掉——创建select元素之前就过滤掉重复的元素。如果必须要在页面中处理,方法也比较多,这里提供一个使用jquery选择器 :contains 的方法:
$(":contains(text)"); // 选取包含指定字符串的元素这样就可以选出包含重复字符串的option元素,然后将其删掉
示例代码如下
创建Html元素
<div class="box"><span>点击按钮删除select控件中的重复元素:</span><br>
<div class="content">
<select >
<option>1</option>
<option>1</option>
<option>2</option>
<option>2</option>
<option>3</option>
</select>
</div>
<input type="button" value="删除重复项">
</div>
设置css样式
divbox{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}divbox span{color:#999;font-style:italic;}
divcontent{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
select{width:150px;height:30px;margin:5px 0;border:1px solid #6699FF;}
input[type='button']{height:30px;margin:10px;padding:5px 10px;}
编写jquery代码
$(function(){$(":button")click(function() {
$("select option")each(function() {
text = $(this)text();
if($("select option:contains("+text+")")length > 1)
$("select option:contains("+text+"):gt(0)")remove();
});
});
})
观察效果
初始状态
点击按钮删除重复项之后
垃圾前排答案,看劳资来答。
1、设置outline: none;谷歌浏览器搞定;
2、解决火狐设置outline: none;依然有虚线字体颜色框的问题:
思路:用阴影来替换文本,只针对火狐
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
非原创,Stack Overflow找到的答案,原链接:去除火狐select虚线边框
能fq的直接点链接吧
这篇文章主要介绍了jQuery如何取得设置清空select选择的文本与值,下面有个不错的示例,需要的朋友可以参考下获取select :
获取select 选中的 text :
1
$("#ddlregtype")find("option:selected")text();
获取select选中的 value:
1
$("#ddlregtype ")val();
获取select选中的索引:
1
$("#ddlregtype ")get(0)selectedindex;
设置select:
设置select 选中的索引:
1
$("#ddlregtype ")get(0)selectedindex=index;//index为索引值
设置select 选中的value:
1
2
3
$("#ddlregtype ")attr("value","normal“);
$("#ddlregtype ")val("normal");
$("#ddlregtype ")get(0)value = value;
设置select 选中的text:
1
2
3
4
5
6
7
8
9
var count=$("#ddlregtype option")length;
for(var i=0;i<count;i++)
{ if($("#ddlregtype ")get(0)options[i]text == text)
{
$("#ddlregtype ")get(0)options[i]selected = true;
break;
}
}
$("#select_id option[text='jquery']")attr("selected", true);
设置select option项:
$("#select_id")append("<option value='value'>text</option>"); //添加一项option
$("#select_id")prepend("<option value='0'>请选择</option>"); //在前面插入一项option
$("#select_id option:last")remove(); //删除索引值最大的option
$("#select_id option[index='0']")remove();//删除索引值为0的option
$("#select_id option[value='3']")remove(); //删除值为3的option
$("#select_id option[text='4']")remove(); //删除text值为4的option
清空 select:
$("#ddlregtype ")empty();
工作需要,要获得两个表单中的值。如图:
如何获得从左边选择框添加到右边选择框中的值?我想了想用网页特效可以获得,这里用了比较流行的jquery。
js代码如下:
//获取所有属性值 var item = $("#select1")val();
$(function(){
$('#select1')each( //获得select1的所有值
function(){
$('button')click(function(){
alert($('#select2')val()); //获得select2中的select1值
});
});
})
</script>
值得注意的是,不能直接写成
$(function(){
$('#select2')each( //获得select1的所有值,因为前面讲选项从左边添加到右边,jquery其实并没有真正将值从左边传到右边。
function(){
$('button')click(function(){
alert($(this)val()); //获得select2中的select1值
});
});
})
html:
<div class="centent">
<select multiple="multiple" id="select1" name="dd" style="width:100px;height:160px;">
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
<option value="4">选项4</option>
<option value="5">选项5</option>
<option value="6">选项6</option>
<option value="7">选项7</option>
</select>
<div>
<span id="add" >选中添加到右边>></span>
<span id="add_all" >全部添加到右边>></span>
</div>
</div>
<div class="centent">
<select multiple="multiple" id="select2" name="sel" style="width: 100px;height:160px;">
</select>
<div>
<span id="remove"><<选中删除到左边</span>
<span id="remove_all"><<全部删除到左边</span>
</div>
</div>
使用JQuery,Ajax调用动态填充Select的option选项
//绑定ClassLevel1单击事件
$("#ClassLevel1")change(function () {
var id = $("#ClassLevel1")val();
var level2 = $("#ClassLevel2");
level2empty();
$("#ClassLevel3")hide();
$ajax({
url: "/askCommonashxaction=getclasslevel&pid=" + id,
data: { "type": "ajax" },
datatype: "json",
type: "get",
success: function (data) {
var json = eval_r(data);
for (var ind in json) {
level2append($("<option value='" + json[ind]id + "'>" + json[ind]typename + "</option>"));
}
}
});
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)