【发布时间】:2015-02-18 17:06:36
【问题描述】:
我想选择所有具有 magic 属性的元素。但我不喜欢任何没有名为 magic 的属性的孩子。
被选择的元素不应该根据属性magic的父元素改变它们的顺序。
例如,
我有一个这样的 HTML:
<div magic="row">
<div magic="inputWrapper">
<input magic="input"></input>
<input magic="input"></input>
</div>
<div>
<div class="row">
<div>
<button magic="write">Write</button>
</div>
<div>
<button magic="delete">Delete</button>
</div>
<div>
<button magic="new">New</button>
</div>
</div>
</div>
</div>
我想要得到的是这样的:
<div magic="row">
<div magic="inputWrapper">
<input magic="input"></input>
<input magic="input"></input>
</div>
<button magic="write">Write</button>
<button magic="delete">Delete</button>
<button magic="new">New</button>
</div>
仅使用选择器是一项简单的任务还是应该使用循环等?
【问题讨论】:
-
您应该在
magic前面加上数据,然后在 jQuery 中选择以下内容:$("*[data-magic]"),这将选择具有该属性的所有元素。如果要移动元素,请使用$("*[data-magic]).detach().appendTo("wherever you want to append the stuff") -
先添加自己的属性无效,应该使用
data-*属性。其次,您是否只是想将button元素移动到顶层div?您是否使用其他一些逻辑来更改 DOM? -
如果你选择它们,你能不能只得到所有具有你想要的属性(即魔法)的元素,或者你真的想改变页面上的标记?
-
我使用属性魔法只是为了说明示例,因为这不是我要说明的重点。这也可以是 x、y、z 或 data-* 或任何其他可选择的东西。
-
我想更改标记@Beast-a-tron
标签: javascript jquery attributes children