如何在Javascript中对数组和字符串运行getelementbyid,并将其设置为非空的变量,例如foo [“dog”] x = getelementbyid(foo [0] +“food”),现在x = dogfood
<script>
var myrows = new Array();
$(function() {
$("#check").click(function(){
myrows=[]
$(".head input:checked").not("#selectall").each(function(){
myrows.push($(this).parent().attr("id"));
}).value;
alert(myrows);
});
$("#subbut").click(function(){
var x;
var r=confirm("Are you sure you?");
if (r==true){
x="You pressed OK!";
}else{
Object.cancel;
}
**alert( myrows[0]+"servername" + " before" );
for(var i =0; i< myrows.length; i++){
alert(myrows[i] +"rootname" +" in loop" );
var j= document.getElementById(xmyrows[i] +"rootname" );
alert(j+" after call" );
var y = document.getElementById(myrows[i]+"servername");
document.getElementById("id_rootname").value= j.textContent;
document.getElementById("id_servername").value= y.textContent ;**
$.post($("#forms").attr("action"), $("#forms").serialize(), function(data) {
});
}
});
});
</script>
答案 0 :(得分:1)
我真的不明白数组/字符串问题是什么,但是从评论看来,你似乎正在寻找一种方法来进行动态表单提交:Dan Davis提供了解决方案的基本要点{{3 - 对于您需要动态提交的每个表单(无需刷新),创建一个iframe,然后将相应表单的target属性设置为该iframe的ID:
<form id="form1" target="#form1Response">
...
</form>
<form id="form2" target="#form2Response">
...
</form>
<iframe id="#form1Response"></iframe>
<iframe id="#form2Response"></iframe>
然后,您需要将服务器响应回调附加到各种iframe的load
事件中。请注意:即使是空的iframe也会触发加载事件,因此您需要在回调中过滤误报(空iframe内容)。
另一个警告:如果您的服务器使用JSON响应,IE将提示用户在脚本可以拦截之前将响应保存到文件系统 - 因此请确保将MIME类型标题设置为text / plain或text / html以使其生成确保响应已加载到iframe的DOM中。
答案 1 :(得分:0)
这可能发生,因为如果字符串与数字连接,java脚本有时会允许空格。尝试删除空格并创建一个字符串,然后将其传递给getElementById。
示例:
var str = myrows[i]+"rootname";
str = str.replace(/^\s+|\s+$/g,"");
var str1 = myrows[i]+"servername";
str1 = str1.replace(/^\s+|\s+$/g,"");
var j= document.getElementById(str);
var y = document.getElementById(str1);
document.getElementById("id_rootname").value= j.textContent;
document.getElementById("id_servername").value= y.textContent ;
}