用javascript替换类值

用javascript替换类值,javascript,Javascript,我想用xyzName替换abcName <tr> <td> <b class="abcName">Bob</b> </td> </tr> 上下快速移动 使用此选项,但在页面加载时不会发生任何更改: var bobo = document.getElementsByTagName("td"); function user(a, b, c) { try { if

我想用
xyzName
替换
abcName

<tr>
    <td>
        <b class="abcName">Bob</b>
    </td>
</tr>

上下快速移动
使用此选项,但在页面加载时不会发生任何更改:

var bobo = document.getElementsByTagName("td");


function user(a, b, c) {
    try {
        if (bobo[c].innerHTML.match('>' + a)) {
            bobo[c].className = b;
        }
    } catch (e) {}
}


function customs() {
    for (i = 0; i < bobo.length; i++) {

        classChange("Bob", "xyzName", i);

    }
}
setInterval("customs()", 1000);
var-bobo=document.getElementsByTagName(“td”);
功能用户(a、b、c){
试一试{
if(bobo[c].innerHTML.match('>'+a)){
bobo[c].className=b;
}
}捕获(e){}
}
海关职能(){
对于(i=0;i
获取要更改的元素(可以通过多种方式进行更改,在本例中我使用了ID)

要删除类,请使用:

x.className = x.className.replace(/\bCLASSNAME\b/,'');

希望这能有所帮助。

虽然我不确定你在间隔时间内做什么是最好的方法,但你可以:

var tidi = document.getElementsByTagName("td");

function changeStyleUser(a, b, c) {
    try {
        if (tidi[c].children[0].innerHTML.indexOf(a) === 0) {
            tidi[c].className = b;
        }
    } catch (e) {}
}


function customizefields() {
    for (i = 0; i < tidi.length; i++) {

        changeStyleUser("Bob", "xyzName", i);

    }
}
setInterval("customizefields()", 1000);

另外,请注意在
setInterval()
中使用了匿名函数而不是字符串。这允许您不使用
eval()

编辑2

如果要传入名称和类关联的列表,可以使用带有对象的数组,如下所示:

function customizefields(arrNames) {
    $('td b').each(function(){
        for (var i = 0; i < arrNames.length; i++) {
            if ($(this).text().indexOf(arrNames[i].name) === 0) {
                this.className = arrNames[i].class;
            }
        }
    });
}
var namesToChange = [
    {'name':'Bob','class':'Bob'},
    {'name':'Bert','class':'Bert'},
    {'name':'Jeff','class':'Jeff'}
];
setInterval(function(){customizefields(namesToChange)}, 1000);

编辑3

如果需要多个值,也可以将对象的值设置为对象

function customizefields(objNames) {
    $('td b').each(function(){
        name = $(this).text();
        if (name.indexOf(" ") != -1) {
            name = name.substring(0, name.indexOf(" "));
        }
        if (objNames[name]) {
            this.className = objNames[name].class;
            this.style.backgroundImage = "url(" + objNames[name].img + ")";
        }
    });
}
var namesToChange = {
    'Bob':{'class':'Bob','img':'bobspic.jpg'},
    'Bob':{'class':'Bert','img':'Bertphoto.jpg'},
    'Bob':{'class':'Jeff','img':'jeff.jpg'}
};
setInterval(function(){customizefields(namesToChange)}, 1000);
更改此行:

classChange("Bob", "xyzName", i);
为此:

changeStyleUser("Bob", "xyzName", i);

那么你的脚本就可以了。帮自己一个忙,使用调试器。:-)

它没有ID。只有用于粗体标记的类。@Jared Farrish如果使用jquery解决方案更好,我不会介意:)@Jared Farrish你是个专业人士!!!!如果我想添加更多的名字,比如bob、bert和jeff,并给每个名字赋予自己的类值,你会怎么做?@Jared Farrish你的天赋让我惊讶:D如果我能最后一个请求打扰你?你能把这段代码添加到最后一个例子中吗。它基于我之前发布的JavaScript。据我所知,它基于名称将bgImage类添加到td标记中。因此,如果可能的话,可以将数组更改为name:name(class):bgimage(class)+1,以获得可靠的多答案。(还有一张很棒的阿凡达照片)。@CleverQuack-谢谢@sarsar-我刚刚注意到我在上一次代码编辑中使用了
.class
而不是
.img
。仅供参考。
function customizefields(objNames) {
    $('td b').each(function(){
        name = $(this).text();
        if (name.indexOf(" ") != -1) {
            name = name.substring(0, name.indexOf(" "));
        }
        if (objNames[name]) {
            this.className = objNames[name];
        }
    });
}
var namesToChange = {
    'Bob':'Bob',
    'Bert':'Bert',
    'Jeff':'Jeff'
};
setInterval(function(){customizefields(namesToChange)}, 1000);
function customizefields(objNames) {
    $('td b').each(function(){
        name = $(this).text();
        if (name.indexOf(" ") != -1) {
            name = name.substring(0, name.indexOf(" "));
        }
        if (objNames[name]) {
            this.className = objNames[name].class;
            this.style.backgroundImage = "url(" + objNames[name].img + ")";
        }
    });
}
var namesToChange = {
    'Bob':{'class':'Bob','img':'bobspic.jpg'},
    'Bob':{'class':'Bert','img':'Bertphoto.jpg'},
    'Bob':{'class':'Jeff','img':'jeff.jpg'}
};
setInterval(function(){customizefields(namesToChange)}, 1000);
classChange("Bob", "xyzName", i);
changeStyleUser("Bob", "xyzName", i);