我正在尝试查看如何找到在表中动态添加的标记,如下所示:
ParentTag= document.getElementById('parentdiv');
var newTag = document.createElement('div');
newTag.innerHTML="<span class="ImNew"></span>"
ParentTag.appendChild(newTag);
我如何才能在 javascript 中找到该标记,而不是倾向于使用jquery所以请不要直播建议请...尝试在严格的javascript中找到新标记。
我指的是 span 标记
答案 0 :(得分:2)
您可以在创建新标记时为其添加ID:
ParentTag= document.getElementById('parentdiv');
var newTag = document.createElement('div');
newTag.setAttribute('id','myNewID');
newTag.innerHTML="<span class="ImNew"></span>"
ParentTag.appendChild(newTag);
然后,只需使用该ID即可找到它:
var newTag = document.getElementById('myNewID');
答案 1 :(得分:1)
正如其他人所提到的,如果您以后需要它,为什么不跟踪它或给它id
?
但无论如何,这就是你可以进行手动搜索的方法(在你将新项目添加到最后时从前到后搜索)。
var parent = document.getElementById("parentdiv")
for (var i = parent.childNodes.length - 1; i >= 0; i--)
{
var el = parent.childNodes[i];
if (el.nodeType == 1 &&
el.nodeName.toLowerCase() == "div" &&
el.firstChild &&
el.firstChild.nodeName.toLowerCase() == "span" &&
el.firstChild.className = "ImNew")
{
// el.firstChild is what you want
}
}
答案 2 :(得分:1)
这取决于元素中存在的其他元素。例如,您可以获取元素中的所有span标记,并过滤掉具有特定类名称的标记:
var parentTag = document.getElementById('parentdiv');
var spans = parentTag.getElementsByTagname('SPAN');
var filtered = [];
for (var i=0; i<spans.length; i++) {
if (spans[i].className === 'ImNew') filtered.push(spans[i]);
}
如果元素中只有一个带有该类名称的span标记,则filtered
数组现在包含对该元素的引用。