Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试将jQuery元素数组附加到DOM中_Jquery - Fatal编程技术网

尝试将jQuery元素数组附加到DOM中

尝试将jQuery元素数组附加到DOM中,jquery,Jquery,这是我的密码: function rearrangeBySort(allTasksPerSection) { if (allTasksPerSection.attr("class").match("task-incomplete")) { debugger; $(".task.task-incomplete").replaceWith(allTasksPerSection) } else { $(".task.hide.tasks-hidden").replace

这是我的密码:

function rearrangeBySort(allTasksPerSection) {
  if (allTasksPerSection.attr("class").match("task-incomplete")) {
    debugger;
    $(".task.task-incomplete").replaceWith(allTasksPerSection)
  } else {
    $(".task.hide.tasks-hidden").replaceWith(allTasksPerSection)
  }
};
allTasksPerSection是一个jquery代理数组:

[<div class=​"task task-incomplete">​…​</div>​, <div class=​"task task-incomplete">​…​</div>​, <div class=​"task task-incomplete">​…​</div>​, <div class=​"task task-incomplete">​…​</div>​, <div class=​"task task-incomplete">​…​</div>​, <div class=​"task task-incomplete">​…​</div>​]
[​…​​, ​…​​, ​…​​, ​…​​, ​…​​, ​…​​]

我想在这里使用replaceWith用我的div数组allTasksPerSection来替换黑色的HTML。我该怎么办?显然,replaceWith不能将jquery元素附加到DOM中?如果allTasksPerSection是一个div数组,我该怎么办?

可以用jquery选择来包装元素:

var tasks = $(allTasksPerSection);
这将导致jQuery将其视为选择集,您现在可以对其执行选择器:

tasks.find(".task-incomplete"); // all incompete tasks
tasks.find(".task-incomplete").length === tasks.length; // all tasks have the class
您可以尝试以下方法:

function rearrangeBySort(allTasksPerSection) {
  $(".task.task-incomplete").empty();
  allTasksPerSection.each(function(){
    if ($(this).hasClass("task-incomplete")) {
      debugger;
      $(".task.task-incomplete").append($(this));
    } else {
      $(".task.hide.tasks-hidden").append($(this));
    }
  });
};

请检查hasClass()
allTasksPerSection.hasClass(“任务未完成”)
问题是因为您试图对数组而不是jQuery对象调用
attr()
。您试图创建什么行为?您是否尝试过使用
.append()
?调试器是否命中?@rorymcrossan我认为它是jQuery对象。
[]
是一个数组,
{}
是一个对象。而且,你没有对数组中的每个元素进行转义。这也是一个问题。他想要的逻辑取决于我所理解的所有任务是否都不完整。@BenjaminGruenbaum我认为这里的解决方案是迭代数组,然后在满足任何条件的情况下将其附加到div,这就是OP所要求的。