改变内部html无法正常工作

时间:2015-04-15 11:20:39

标签: javascript innerhtml

我在尝试使用以下代码更改某些innerHtml时遇到问题:

var element = document.getElementByClass("productitemcell > a");
element.innerHTML = "Remover";

可以将innerHTML从一个名为“Remove”的链接更改为“Remover”并且它不起作用。

以下是它的页面:http://ooleiro.businesscatalyst.com/OrderRetrievev2.aspx

您必须购买一些产品才能访问此购物车页面。

3 个答案:

答案 0 :(得分:3)

我认为你的意思是document.getElementsByClassName()

此方法将返回HTMLCollection个对象。你可以抓住第一个元素:

var elements = document.getElementsByClassName('class');
var firstElement = elements[0];

参考:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName

答案 1 :(得分:0)

该方法称为getElementsByClassName(复数),并返回HTML元素的集合。您想要更改HTML中的哪一个?对于第一个?

此外,您不能在标准DOM方法中使用类似CSS选择器

编辑:显然,您希望在a出现的所有事件中更改所有.productitemcell个元素:

var pics = document.getElementsByClassName("productitemcell");
for(i=0; i<pics.length; i++) {
   // loop over all elements with that class
   var anchors = pics[i].getElementsByTagName("a");
   for(j=0; j<anchors.length; j++) {
      // loop over all anchor elements within the current class element
      anchors[j].innerHTML = 'Remover';
   }
}    

答案 2 :(得分:0)

必须将课程改为

var removerprod = document.getElementsByClassName("remover");
for(i=0; i<removerprod.length; i++) {
   // loop over all elements with that class
   var anchors = removerprod[i].getElementsByTagName("a");
   for(j=0; j<anchors.length; j++) {
      // loop over all anchor elements within the current class element
      anchors[j].innerHTML = 'Remover';
   }
}

所以它也不会改变产品名称。剩下的唯一问题是它用ajax进行检索,每次刷新它再次更改为“删除”谢谢你的devnul69,我今天真的学到了很多关于js。