afe*_*ops 11 forms sharepoint jquery options drop-down-menu
我有一个从列表生成的下拉选择器,并希望筛选选项以删除重复的条目.我要过滤...
<select name="company">
<option "1">Microsoft</option>
<option "2">Microsoft</option>
<option "3">Microsoft</option>
<option "4">Microsoft</option>
<option "5">Apple</option>
<option "6">Apple</option>
<option "7">Google</option>
</select>
Run Code Online (Sandbox Code Playgroud)
...向下呈现用户......
<select name="company">
<option "1">Microsoft</option>
<option "5">Apple</option>
<option "7">Google</option>
</select>
Run Code Online (Sandbox Code Playgroud)
(数据来自另一个列表上的Sharepoint Lookup,我想我可以使用jquery来保留唯一的选项,而不必深入了解正在发生的事情.)我可以删除这样的选项吗?谢谢.
Gre*_*ell 32
你可以通过一个简单的循环来实现 - 尽管如此,使用jQuery选择器可能有一种更聪明的方法来处理它.以下应该有效:
var usedNames = {};
$("select[name='company'] > option").each(function () {
if(usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:这是一个功能风格的单行程序,在优秀的Underscore.js的帮助下完成它,虽然以前的版本几乎肯定更有效:
_.each(_.uniq(_.pluck($("select[name='company'] > option").get(), 'text')), function(name) { $("select[name='company'] > option:contains(" + name + ")").not(":first").remove(); });
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
var previousOption;
$('select[name=company] option').each(function() {
if (this.text == previousOption) $(this).remove();
previousOption= this.text;
});
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以尝试以下代码,它将删除重复项,无论它们的位置如何.这里#targetSelect是你的目标Dropdown
var a = new Array();
$(#targetSelect).children("option").each(function(x){
test = false;
b = a[x] = $(this).text();
for (i=0;i<a.length-1;i++){
if (b ==a[i]) test =true;
}
if (test) $(this).remove();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29786 次 |
| 最近记录: |