Javascript 数据以未定义的形式返回
我有一个可排序的函数,我希望能够将用户添加到组中。当我将用户从用户表拖到组表时,我希望能够检查该ID是否已经存在于组表中,如果已经存在,我希望以错误消息响应。然而,当我尝试循环trou并从组表中获取ID时,我得到了一个未定义的值 HTML代码:Javascript 数据以未定义的形式返回,javascript,jquery-ui-sortable,children,Javascript,Jquery Ui Sortable,Children,我有一个可排序的函数,我希望能够将用户添加到组中。当我将用户从用户表拖到组表时,我希望能够检查该ID是否已经存在于组表中,如果已经存在,我希望以错误消息响应。然而,当我尝试循环trou并从组表中获取ID时,我得到了一个未定义的值 HTML代码: <div class="userContainer"> <div id="userDiv"> <ul class="userList dragable" ></ul> <
<div class="userContainer">
<div id="userDiv">
<ul class="userList dragable" ></ul>
</div>
<div id="groupDiv">
<select id="DropDown"></select>
<input id="btnGetGroups" class="btn btn-success" type="button"
value="Hämta grupper" />
<select id="DropDownGroups"></select>
<input id="btnShowGroups" class="btn btn-success" type="button"
value="Visa grupp" />
<ul class="usersOfGroupList dragable"></ul>
</div>
</div>
以下是用当前用户填充组表的代码:
$('btnShowGroups')。单击(函数(){
var e=document.getElementById(“DropDownGroups”);
groupId=e.options[e.selectedIndex]。值;
$('.usersOfGroupList').empty();
$.getJSON(“MyLinkGoesher”+groupId+”,函数(结果){
$。每个(结果、函数(i、值){
$('.usersOfGroupList').append($(“
如您所见,我在这里使用“userId”作为数据属性的键
可排序代码如下所示:
$(“.dragable”)。可排序({
连接到:“.usersOfGroupList”,
删除:功能(e、ui){
var$this=$(this);
var childs=$this.find('li');
if(childs.length==0){
$this.text(“无”);
}
},
接收:功能(e、ui){
var数组=[];
var$this=$(this);
var children=$this.find('li');
对于(变量i=0;i
在receive属性中,我试图通过循环所有li元素来获取当前用户ID,然后将ID推送到数组中,但它只会返回未定义的。我已经调试,并且li元素在那里,但它会给我以下错误消息:
未捕获类型错误:无法读取未定义的属性“数据”
在HtmlListElement.receive
子项[i]。项
未定义…我看到您使用了奇怪的循环,do$this.find('li')。each(函数(i){array.push($(this).data('userId');});
-我们在中看到,建议jQuery集合对jQuery对象进行迭代,为每个匹配的元素执行一个函数。
@skobaljic您就是那个人,谢谢。
$('#btnShowGroups').click(function () {
var e = document.getElementById("DropDownGroups");
groupId = e.options[e.selectedIndex].value;
$('.usersOfGroupList').empty();
$.getJSON("mylinkgoeshere" + groupId + "", function (result) {
$.each(result, function (i, value) {
$('.usersOfGroupList').append($("<li id='userElement' data-userId='' ></li>").data('userId', value.Id).html(value.FirstName + " " + value.LastName));
$(".usersOfGroupList").addClass("addBorder");
});
});
});
$(".dragable").sortable({
connectWith: ".usersOfGroupList",
remove: function (e, ui) {
var $this = $(this);
var childs = $this.find('li');
if (childs.length === 0) {
$this.text("Nothing");
}
},
receive: function (e, ui) {
var array = [];
var $this = $(this);
var children = $this.find('li');
for (var i = 0; i < children.length; i++) {
var specificId = children[i].item.data('userId');
array.push(specificId);
console.log(array);
};