<script>
var str = 'ok';
</script><div>success.</div>
<div>Test</div>
<img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png" onload="this.previousSibling.innerHTML = str" />
<div>success.</div>不要用getElementsByTagName、不能给div加ID、class等、不动原先DIV结构的情况下更改Test为ok。像上面类似onload事件来改、DIV又没onload事件……,
有什么好方法么?
var str = 'ok';
</script><div>success.</div>
<div>Test</div>
<img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png" onload="this.previousSibling.innerHTML = str" />
<div>success.</div>不要用getElementsByTagName、不能给div加ID、class等、不动原先DIV结构的情况下更改Test为ok。像上面类似onload事件来改、DIV又没onload事件……,
有什么好方法么?
这个真的不知道了 帮你顶下吧
但是为什么不让用getElementsByTagName啊
window.onload=function(){
document.getElementsByTagName("div")[1].innerHTML=str;
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
//符合7楼假设情况的处理方法
window.onload = function() {
var obj = document.getElementsByTagName('div');
for (var i = 0; i < obj.length; i ++) {
var nextNode = obj[i].nextSibling;
while(nextNode.nodeType != 1) nextNode = nextNode.nextSibling;
if (nextNode.nodeName == 'IMG' && nextNode.style.display == 'none') {
obj[i].innerHTML = 'OK';
break;
}
}
}
</script>
</head><body>
<div>success.</div>
<div>Test</div>
<img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png" onload="this.previousSibling.innerHTML = str" />
<div>success.</div>
</body>
</html>
<script type="text/javascript">
function init(){
var a=document.all;
for(var i=0;i<a.length;i++){
if(a[i].tagName=="DIV"){
if(a[i].innerHTML=="Test"){
a[i].innerHTML="ok";
}
}
}
}
window.onload=init;
</script>
试试
getElementsByTagName()太狠了window.onload = function() {document.body.innerHTML = document.body.innerHTML.replace(/<div>Test<\/div>/, '<div>OK</div>');
}
你这样遍历了所有div标签……。。不符号题目啊。<div>success.</div>
<div>Test</div>
<img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png" onload="this.previousSibling.innerHTML = 'ok'" />
<div>success.</div>
这个ie下是可以把Test改成ok的、不需遍历,是用了img的onload事件。
我想问的是有没类似这样的方法,根据上下节点来操纵。<div>success.</div>
<div>Test</div>
<script>
....
</script>
<div>success.</div>
<div>Test</div>
<img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png"
onload="var obj = this.previousSibling; if (obj.nodeType != 1) obj = obj.previousSibling; obj.innerHTML = 'OK';" />
<div>success.</div>
你那样、或这样就弄就好了。<div>success.</div>
<div>Test</div><img style="display:none" src="https://www.google.com.hk/intl/zh-CN/images/logo_cn.png" onload="this.previousSibling.innerHTML = 'ok'" />
<div>success.</div>但要用img、感觉老不自在的
不是弄这个,
搞这个这个还需这么笨拙方法嘛。。直接给id得拉。我是弄翻译,有一部分数据是php直接输出的。但翻译包是js数据。
要js与php"沟通"起来,我就想在需翻译的地方加个js函数得拉,而不需去改动原先的结构跟id什么的。
看样子要来个replace替换。
就可以选中你的DIV然后
把内容换掉就可以了
LZ 可以试试
就可以选中你的DIV 然后用innerHTML 换掉内容
LZ可以试试