2015-07-21 38 views
1

我有一些JavaScript编写来适应我在SharePoint页面上某些条件格式的需求。在Web部件中有几个表格,我正在对其中一些单元格的样式进行更改。我使用了一个nodelist来完成我的需求(没有唯一的id),并且所有的工作都正常,直到对我的节点列表引用关闭的表进行了更改(我知道这是不可避免的..)。我想知道是否有人有关于如何更好地选择或区分具有相同类名称和包含将会改变的数据的元素的输入。JavaScript - 需要与通用类的元素一起工作

例如:

<td class="asd"> blah blah blah </td> 
<td class="asd"> content content </td> 
<td class="asd"> test test test </td> 
+0

我会看看我能设置一个uniqu e id。我是SharePoint新手,所以我不确定他们的标记是如何锁定的。谢谢! – robbieyng

+0

对不起,删除了我的评论,因为我猜getElementyByClassName可以正常工作。 :) –

+0

我正在以类似的方式接近,使用document.querySelectorAll(“asd”)将所有元素都放入一个节点列表中,以及我的工作原理,但是当具有相同类的另一个元素添加到页面中时,我正在使用的引用变化,我期望的。我想知道是否有任何关于如何以不同方式访问元素的常见建议,以便当具有相同类名称的其他元素添加到页面时,使用节点列表位置的以前的引用/变量不会丢失。 – robbieyng

回答

0

使用getElementsByClassName()

var tds = document.getElementsByClassName('asd'); 
 
console.log(tds); 
 
for (var i = 0; i < tds.length; i++) { 
 
    tds[i].style.color = 'green'; 
 
}
<table> 
 
    <tr> 
 
    <td class="asd">blah blah blah</td> 
 
    <td class="asd">content content</td> 
 
    <td class="asd">test test test</td> 
 
    </tr> 
 
</table>

+0

我以类似的方式接近,使用document.querySelectorAll(“asd”)获取所有元素到一个节点列表中,以及我有什么作品,但是当具有相同类的另一个元素被添加到页面时,引用我正在使用我期望的变化。我想知道是否有任何关于如何以不同方式访问元素的常见建议,以便当具有相同类名称的其他元素添加到页面时,使用节点列表位置的以前的引用/变量不会丢失。 – robbieyng

0

的Javascript选择他们: var td=document.getElementsByClassName("asd");//returns array of elements by this class name td[0] td[1] ...

+0

我以类似的方式接近,使用document.querySelectorAll(“asd”)将所有元素放入一个节点列表,以及我的工作原理,但是当具有相同类的另一个元素添加到页面时,引用我正在使用我期望的变化。我想知道是否有任何关于如何以不同方式访问元素的常见建议,以便当具有相同类名称的其他元素添加到页面时,使用节点列表位置的以前的引用/变量不会丢失。 – robbieyng