我正在使用ajax调用填充li
列表。我在li
中不需要表格中的重复值。只应将唯一值添加到li
列表中。我知道这应该在SQL方面解决,但是现在我只需要能够在jQuery中过滤列表。
HTML:
<ul id="bookList">
</ul>
JS:
$.ajax({
type: "GET",
url: "getchapters.php",
dataType: 'json',
cache: false,
success: function(results) {
$.each(results, function(index, result) {
var Books = result.books.split(",");
$("#bookList").append('<li>' + Books + '</li>');
});
}
});
因此,如果“绿色鸡蛋和火腿”一书出现一次,它就会被添加到列表中。它第二次出现时会被忽略。
答案 0 :(得分:3)
您可以在循环外部创建一个单独的数组来跟踪
<xe:dynamicViewPanel
id="dynamicViewPanel1"
var="rowData"
indexVar="index">
<xe:this.data>
<xp:dominoView
var="view1"
viewName="testview">
</xp:dominoView>
</xe:this.data>
<xe:this.rowAttrs>
<xp:attr
name="noteId"
value="#{javascript:rowData.getNoteID()}">
</xp:attr>
</xe:this.rowAttrs>
<xp:eventHandler
event="onColumnClick"
submit="false">
<xe:this.script><![CDATA[
alert(thisEvent.target.parentNode.parentNode.getAttribute("noteId"));
]]></xe:this.script>
</xp:eventHandler>
</xe:dynamicViewPanel>
答案 1 :(得分:0)
在填充列表之前,使用此代码从数组中删除重复:
var Books = result.books.split(",");
var uniqueNames = [];
$.each(Books, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
答案 2 :(得分:0)
之后
var Books = result.books.split(",");
使用此
Books = Books.reduce(function(c,l){
if(c.indexOf(l) > -1){
return c;
}
c.push(l);
return c;
},[]);
现在书籍只有独特的项目
**更新:** 你可以使用套装
booksSet = new Set(Books);
现在你有bookSet,你可以使用forEach或者你想要的任何东西,