JQuery:创建具有相同自定义属性的相应元素
JQuery: create corresponding elements with same custom attrs
点击此处:http://jsfiddle.net/yv1vLhd9/
无论出于何种原因,假设我想使用JQuery将三个dom元素替换为另外三个,但我想将一个或多个数据属性从第一个元素转移到它们相应的替换上。
给定以下HTML:
<div class='original' data-custom="dog"></div>
<div class='original' data-custom="cat"></div>
<div class='original' data-custom="sheep"></div>
以及以下CSS:
div {
width: 100px;
height: 100px;
}
div:before {
content: attr(data-custom);
}
.original {
border: blue solid 1px;
}
.new {
border: pink solid 1px;
}
如何确保每个自定义数据属性都有一个新元素?
例如:
$(document).ready( function(){
var $originalEl = $('.original')
var originalData = $originalEl.data('custom')
var replacement = '<div class="new" data-custom="' + originalData + '"></div>'
$originalEl.after(replacement).hide()
});
但这会创建三个新的数据custom="dog"属性。
元素必须使用$.each
。申报$originalEl
后开始
$originalEl.each(function(){
// code here
})
这是您更新的代码http://jsfiddle.net/yv1vLhd9/4/
http://jsfiddle.net/VixedS/wz95hh3r/1/
$(document).ready(function(){
$('.original').each(function(){
$(this).hide().clone().attr('class','new').show().appendTo('body');
})
});
jQuery提供了大量DOM操作方法,这些方法将帮助您实现所需的输入。正如其他一些答案所指出的,您需要使用$.each
遍历匹配的元素集。此外,您可以使用.clone()
方法来:,而不是从字符串中创建新元素
- 克隆现有元素
- 修改你的新元素
- 将其插入原始元素之后
- 遍历到原始图元
- 并最终隐藏原始元素
$(function () {
$('.original').each(function (idx, elem) {
$(elem)
.clone()
.removeClass('original')
.addClass('new')
.insertAfter($(elem))
.prev()
.hide();
});
});
div {
width: 100px;
height: 100px;
}
div:before {
content: attr(data-custom);
}
.original {
border: blue solid 1px;
}
.new {
border: pink solid 1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='original' data-custom="dog"></div>
<div class='original' data-custom="cat"></div>
<div class='original' data-custom="sheep"></div>
API方法参考:
jQuery.each()
.clone()
.removeClass()
.addClass()
.insertAfter()
.prev()
.hide()
相关文章:
- 自定义HTML元素属性未显示-Web组件
- 如何使用javascript获取元素的自定义属性值
- “;idd”;html中的属性?编辑:我可以使用Javascript获得基于自定义属性的元素吗
- 按类和自定义属性值查找元素(然后更新它)
- 如何通过 javascript 中自定义属性的特定值获取元素
- 通过 Javascript 将自定义属性添加到 HTML 元素
- 如何使用事件触发器和自定义属性获取元素的子元素
- 我可以向 html 元素添加自定义属性吗?
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 刷新 Angular 中自定义属性指令的元素
- 侦听器单击任何元素并读取特定的 HTML-5 自定义属性(如果存在)
- AngularJS如何摆脱使用自定义HTML5元素标签和属性
- 将动态创建的下拉列表的自定义属性值添加到另一个元素
- JQuery:创建具有相同自定义属性的相应元素
- Hubspot:HTML元素的自定义属性
- 在Select元素的Option元素中获取自定义属性
- querySelectorAll找不到具有自定义属性的动态添加元素
- 通过使用html自定义属性值为html元素添加类名
- 根据自定义属性的存在定位元素
- 我应该如何从自定义属性在反应元素的值