用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);