innerhtml交换数组的简单介绍
javascript 中使用innerHTML.replace 过程中的疑问
用正则表达式替换,下边是微软给的示例:
下面的示例演示了 replace 方法将第一次出现的单词 "The" 替换为单词 "A" 的用法。
function ReplaceDemo(){
var r, re; // 声明变量。
var ss = "The man hit the ball with the bat.\n";
ss += "while the fielder caught the ball with the glove.";
re = /The/g; // 创建正则表达式模式。
r = ss.replace(re, "A"); // 用 "A" 替换 "The"。
return(r); // 返回替换后的字符串。
}
另外, replace 方法也可以替换模式中的子表达式。 下面的范例演示了交换字符串中的每一对单词:
function ReplaceDemo(){
var r, re; // 声明变量。
var ss = "The rain in Spain falls mainly in the plain.";
re = /(\S+)(\s+)(\S+)/g; // 创建正则表达式模式。
r = ss.replace(re, "$3$2$1"); // 交换每一对单词。
return(r); // 返回结果字符串。
}
下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为 replaceText。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "F" (例如 "Water boils at 212")。
function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; // 初始化模式。
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
);
}
document.write(f2c("Water freezes at 32F and boils at 212F."));
javascript innerHTML 能不能用数组
楼主貌似是想把response的内容插入到数组的某个元素中而不是整个数组内吧?test.innerHTML=response;改成test[bb].innerHTML=response;是完全可以的,只要bb不溢出就可以了
script language="javascript" type="text/javascript"
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
function callServer(aa,cc) {
var url = "66.asp?name=" + aa;
bb=cc;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
function updatePage() {
var test=document.getElementById("test"+bb);
if (xmlHttp.readyState 4) {
test.innerHTML="正在读取价格";
}
if (xmlHttp.readyState == 4) {
var response= xmlHttp.responseText;
test.innerHTML=response;
}
}
/script
input name="ProdId" type="type" size="20" maxlength="15" onClick="callServer();"/
input name="ProdId" type="button" onClick="callServer('20002718',0);" value="提交" size="20" maxlength="15"/
span id="test0"555/spanbr
input name="ProdId" type="type" size="20" maxlength="15" onClick="callServer();"/
input name="ProdId" type="button" onClick="callServer('20002718',1);" value="提交" size="20" maxlength="15"/
span id="test1"555/spanbr
批量增加资料,如何将 js 里变量的值传给 innerHTML 作为变量使用?
变量传给innerHTML实际上就是变量的拼接。
示例:
body
???div?id='divtest'/div
/body
script
var?i=1;
document.getElementById('divtest').innerHTML?=?"test"+i;//这里注意变量的拼接
document.getElementById('divtest').innerHTML?+=?"test2"+(i+1);//这里注意变量的拼接
/script
遍历数组时用innerhtml添加option标签
bug描述:
在ie下面使用innerHTML来插入option选项的话,ie会去掉前面的option,并拆分成多个节点,这样会造成select的出错,不是没有插进去,而是节点在转换时出问题了,微软对这个bug也有描述,并提供了两个解决方案,大家可以自己搜索一下,我大概提下微软的两个方案。
1,使用createElement,这个是正规渠道,要出错还真有问题了。
2,插入完整的select字符串,到div中。
实现:
原理:
既然是使用innerHTML的人,肯定是想用字符串来插入option了,这里主要就是解决这人人群,当然你也可以传入createElement对象来插入。
对于传入的参数会做个判断,看是elementObj还是字符串,如果是elementObj那么就使用标准的add方法加入,并做兼容处理。如果是字符串则使用div包装完整的select并转换成dom对象用appendChild来加入。
注意:
b$.type.isElement(arg)是bBank里面用来判断对象是否是element元素的方法
b$.browser.isIE()是bBank里面用来判断是否是ie的方法
b$.parseDom(str)是bBank里面用来转换字符串为标准dom的方法
js 将数组导入某元素innerHTML中
你想得到的结果是不是把数组中所有的值都列出来,然后用“,”分割
script language="javascript"
var mytext="";
var responseText = new Array(9);
var i;
i=0;
for(i=0;i=9;i++){
responseText[i]=i;
}
i=0;
for(i=0;i=9;i++){
if (i9) {
mytext=mytext+responseText[i];
mytext=mytext+",";
}
else{
mytext=mytext+responseText[i];
}
}
alert(mytext);
/script
得到“0,1,2,3,4,5,6,7,8,9”
javascript 数组innerHTML问题
发现问题所在了,因为你的Div写的不对。
你的DIV结构如下:
div class="div"
divAAA/div
divBBB/div
divCCC/div
divDDD/div
/div
通过document.getElementsByTagName("div")取到的对象有5个,而不是你期待的4个
temp[0] 其实等于 在外层的那个Div,因此上 temp[0].innerHTML += "append"; 已经把
整个第一层Div内部的元素全部改变了,成为以下:
div class="div"
divAAA/div
divBBB/div
divCCC/div
divDDD/div
append
/div
再往下的循环 temp[1] - temp[4] 实际上在页面上已经不存在了(在你保存的数组中存在,但是和页面上的不再是同一个Dom对象了),所以画面的表象就成了上面的样子,好像只累加第一个似的。如果去掉外面的那个Div,有以下的结果:
divAAAappend/div
divBBBappend/div
divCCCappend/div
divDDDappend/div