我在onclick nav tabs event
中使用我的功能(当点击任何标签时,下面的功能会激活)。我只是希望没有相同的名字可以两次插入到下拉列表中。下面的功能非常完美。我只需要像name.text != arr[i]
那样的检查,以防止它在列表中插入两次相同的名称。任何帮助将不胜感激。
JS:
<script>
$(".nav-tabs li").click
(
function()
{
var getnumber = document.getElementById("permanentno").value;
var getData = 'methodname=getList&no='+getnumber;
$.ajax
({
type: 'GET',
url: 'Dropdown List/List.php',
data: getData,
success: function(resp)
{
alert(resp); // names for example: mile,stone,
var arr = resp.split(",");
var list = $(".dropdownlist");
var html = "";
for(var i = 0; i < arr.length; i++)
{
var name = arr[i];
if(name.length != 0)
{
html += "<option value='" + name + "'>";
html += name;
html += "</option>";
}
}
$(".dropdownlist").append(html);
}
});
}
);
</script>
答案 0 :(得分:2)
您可以使用其他数组和IndexOf跟踪名称。请注意,对于IE&lt; 9支持,您需要一个shiv来使用它。
var names = [];
for(var i = 0; i < arr.length; i++)
{
var name = arr[i];
if(name.length != 0 && names.indexOf(name) == -1)
{
html += "<option value='" + name + "'>";
html += name;
html += "</option>";
names.push(name);
}
}
答案 1 :(得分:1)
您可以将选项附加到循环上的dropdownlist
,并使用jQuery检查重复的名称,如:
var list = $(".dropdownlist");
for (var i = 0; i < arr.length; i++) {
var name = arr[i];
if (name.length != 0 && !list.find("option[value='" + name + "']").length) {
var html = "<option value='" + name + "'>";
html += name;
html += "</option>";
list.append(html);
}
}