向嵌套类添加新元素
Adding new element to nested classes
我需要使用 JS 在 HTML 中的特定嵌套类中创建一个新元素。所以在这个例子中,我需要创建一个新的跨度,只有"牧羊犬"类嵌套在"狗"中,才使用"paw-print"类
。这是我到目前为止所拥有的:https://jsfiddle.net/p50e228w/6/
问题是我当前的JS首先适用于另一个实例,但不适用于另一个实例。我目前document.getElementsByClassName
设置为"牧羊犬",但只有当它在父"狗"类内时,我才需要定位该类。
我在这里错过了什么?
var span = document.createElement("span");
span.className = "paw-print";
var wrap = document.getElementsByClassName("collies");
for(var i = 0; i < wrap.length; i++) {
wrap[i].appendChild(span);
}
我可以使用jQuery,但我一直在使用vanilla JS,只是因为我是一个菜鸟,想要了解我的代码在做什么。
您的代码有 2 个问题。
-
定位 :图像被赋予绝对位置,并且它们根据页面布局位于同一位置。因此,请设置父容器的相对位置。
.CSS
.relative {
position: relative;
}
- 您需要将其附加到此处
collie
的父元素。
您可以使用querySelectorAll
查找要查找的嵌套关系船。
var collies = document.querySelectorAll('.dogs .collies');
for (var i = 0; i < collies.length; i++) {
var span = document.createElement("span");
span.className = "paw-print";
collies[i].appendChild(span);
}
小提琴
如果你想附加到父级(带有类'dog'的元素)
$('.dogs .collies').each(function() // finds elements in the dom with parent element 'dog' and it's child element 'collies'
{
$(this) // 'this' would represent 'collies' element
.closest('.dogs') // .closest('.dogs') would get it's nearest occurence in the heirarchy ( basically it's parent )
.append($('<span/>', { class: 'paw-print'})); // create a dynamic span element and append to 'this'
});
如果你想附加到子(元素与类'牧羊犬')
$('.dogs .collies').each(function()
{
$(this).append($('<span/>', { class: 'paw-print'}));
});
除此之外,您还需要按照 Rob 指出的设置position: relative
。
例 : https://jsfiddle.net/DinoMyte/1zxn8193/1/
相关文章:
- 触摸移动时切换到新元素
- 将按钮添加到新元素中
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 剑道UI下载列表:如何动态添加新元素
- 在DIV中动态插入HTML并访问新元素
- 使一个新元素在某个时间出现
- 单击不适用于新元素
- 动态添加新元素并更改其内容
- 没有为Ajax添加的新元素注册Jquery事件
- css在新元素上的转换
- 如何在不创建新元素的情况下修改 DOM 元素的位置
- jquery添加新元素
- 如何在遍历表和添加新元素时获得tr的索引
- PNG修复新元素
- 将点击事件绑定到新元素&使得ID'是独一无二的
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- jQuery没有为具有新id的新元素执行代码
- jQuery倒计时-应用于通过AJAX/PHP加载的新元素
- 在元素内部创建新元素