0

如何在 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>
4

2 回答 2

1

我真的不明白数组/字符串问题是什么,但从评论看来你正在寻找一种方法来进行动态表单提交:Dan Davis在他的评论中提供了解决方案的具体细节——对于每个您需要动态提交的表单(无需刷新),创建一个 iframe,然后将相应表单的目标属性设置为该 iframe 的 ID:

<form id="form1" target="#form1Response">
    ...
</form>
<form id="form2" target="#form2Response">
    ...
</form>
<iframe id="#form1Response"></iframe>
<iframe id="#form2Response"></iframe>

然后,您需要将服务器响应回调附加到各种 iframeload事件。但请注意:即使是空 iframe 也会触发加载事件,因此您需要在回调中过滤误报(空 iframe 内容)。

另一个警告:如果您的服务器使用 JSON 响应,IE 将提示用户在您的脚本拦截之前将响应保存到文件系统——因此请确保将 MIME 类型标题设置为 text/plain 或 text/html 以确保响应被加载到 iframe 的 DOM 中。

于 2013-07-22T14:45:03.453 回答
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 ;

}
于 2013-07-22T16:17:13.563 回答