继承问题,我们生成时,span元素的css类名不断变化。所以为了简化,我们有一个span元素
<tr>
<td>
<span class=1234>My Name is BouncingHippo</span>
</td>
....other well-defined DOM elements with id etc...
</tr>
我在html的某个地方有一个单选按钮,其中onchange,它将改变span元素的字体颜色。
span元素没有id,没有名称,并且span类一直在变化。我当前的方法是强制getElementsByTagName()
为每个innerHTML
使用<tr>
返回特定行,并以此方式插入样式属性。
有更好的方法吗? span class更改每一代的原因是出于我们客户规定的安全目的..
编辑1
关于蛮力方法的jsfiddle的粗略概念,我还没有让它工作.. http://jsfiddle.net/3jVnJ/1/
答案 0 :(得分:2)
这是基于jsFiddle中的想法的一个选项:
function findParentTag(obj, tag) {
tag = tag.toUpperCase();
while (obj && obj.tagName !== tag) {
obj = obj.parentNode;
}
return(obj);
}
function changeColor(obj){
var table = findParentTag(obj, "table");
var spans = table.getElementsByTagName("span");
for (var i = 0; i < spans.length; i++) {
if (spans[i].className) {
spans[i].style.color = "red";
break;
}
}
}
答案 1 :(得分:1)
您可以在生成时从服务器打印出一个带有变量的js脚本标记,该变量是当前生成的类名。然后使用变量,您需要知道该跨越的类。
答案 2 :(得分:0)
我的假设是: 具有属性A的元素选择 dom = for each(e in document.gEBTN('E'))if(e.A)e
所以对你来说就像smth for each (e in document.gEBTN('span')) if (e.class=="1234") e.className=”changedFont”;