将具有相同类名称的div附加到具有相同id名称的div中

时间:2019-09-24 19:31:02

标签: jquery append

我正在尝试将具有相同类名称的div附加到具有相同ID名称的div中。

所以我希望像这样附加div:

<div id="originalsection"></div>
<div id="all" class="newsection">
   <div class="red all"> A </div>
   <div class="blue all"> B </div>
   <div class="green all"> C </div>
   <div class="red all"> D </div>
   <div class="blue all"> E </div>
   <div class="green all"> F </div>
</div>
<div id="red" class="newsection">
   <div class="red all"> A </div>
   <div class="red all"> D </div>
</div>
<div id="blue" class="newsection">
   <div class="blue all"> B </div>
   <div class="blue all"> E </div>
</div>
<div id="green" class="newsection">
   <div class="green all"> C </div>
   <div class="green all"> F </div>
</div>

这是原始HTML:

<div id="originalsection">
   <div class="red all"> A </div>
   <div class="blue all"> B </div>    
   <div class="green all"> C </div>
   <div class="red all"> D </div>
   <div class="blue all"> E </div>
   <div class="green all"> F </div>
</div>
<div id="all" class="newsection"></div>
<div id="red" class="newsection"></div>
<div id="blue" class="newsection"></div>
<div id="green" class="newsection"></div>

我知道我可以使用JQUERY代码附加div

$('div#originalsection div').each(function () {
   $(".newsection").append(this);
});

我还可以使用代码选择某些班级

var sectionclass = $(this).attr('class').split(' ')[0];

或仅此一个。由于有两个类,因此我考虑将其分为[0]和[1]。不确定是否有更简单的方法

var sectionclass = $(this).attr('class');

我很难将这些代码放在一起。我刚开始使用JQuery,所以我希望您能提供任何解释! 另外,我不确定为什么代码没有显示颜色。

1 个答案:

答案 0 :(得分:1)

您已经有了组成部分,您只需要在每个循环中将它们放在一起即可。您唯一缺少的是让元素出现在const Component = ({ updateGroup, createGroup }) =>{ const [errors, setErrors] = useState(false) const onSave = (group,e) =>{ createGroup(group) .then(res => console.log('everything ok')) .catch(err => setError(err) /* now you have the errors inside your component*/) } return <form onSubmit={ e => onSave(group,e)) }> /*...*/ </form> } 下,并且需要克隆相关的颜色容器,这可以通过#all完成。试试这个:

clone()
var $all = $('#all');

$('div#originalsection div').each(function() {
  var $div = $(this);
  var sectionclass = $div.attr('class').split(' ')[0];
  $('#' + sectionclass).append($div);
  $all.append($div.clone());
});
#red { color: red; }
#green { color: green; }
#blue { color: blue; }