【问题标题】:can we use a variable to declare a div in JAVASCRIPT?我们可以使用变量在 JAVASCRIPT 中声明一个 div 吗?
【发布时间】:2013-05-14 11:38:44
【问题描述】:

我在 Phone Gap-android 工作。我想根据记录的长度动态设置 SWIPE VIEW。

我该怎么做?经过很长时间,我尝试实现以下代码。我是对还是错?

value= VALUE_FROM_DB.split("||");
            for (k=0;k<value.length;k++)
            {
                if (value[0] == paramName1)
                {
                      return unescape(value[k]);
                      console.log("no of swipe views ");
                  }
                   var val = k+1;
                  var ni = document.getElementById('swiper-wrapper');
                  var newdiv = document.createElement('div');
                  var divIdName = 'swiper-slide'+val;
                  console.log("div name: "+divIdName);
                  newdiv.setAttribute('id',divIdName);
                  newdiv.setAttribute('class','swiper-slide');
                  var cnt1 = '<div id="container'+val+'"><span><img src="img/abc'+val+'.png" style="float:left; " /></span><div id="abc'+val+'"><span><h5>'+value[k]+'</h5></span></div></div>';
        ---->     console.log("div_id :"+id);
                  document.getElementById(+divIdName).innerHTML=cnt1;
                  console.log("value_from_db:: "+value[k]);
                  ni.appendChild(newdiv);

在尝试执行时,该值未打印,我看到一个错误为 REFERENCE ERROR,没有定义,它是一个空白屏幕,必须查看 DIV。

在 HTML 代码中,我给出了以下内容,

<div id="swipe_body">

        <div class="swiper-container swiper-threshold">
            <div class="swiper-wrapper">

            </div>
        </div>
    </div>

这可能吗?我有错吗?

在“@nnnnnn”建议之后,我更改并实现了以下代码:

 var cnt1 = '<div id="container'+val+'"><span><img src="img/abc_'+val+'.png" style="float:left; " /></span><div id="abcd'+val+'"><span><h5>'+value[k]+'</h5></span></div></div>';
                 // console.log("div_id :"+id);
                  document.getElementById(divIdName).innerHTML=cnt1;
                  console.log("abcd values: "+value[k]);
                  ni.appendChild(newdiv);

但是,我收到以下错误:

05-14 17:24:25.382: I/Web Console(17882): JSCallback Error: TypeError: Cannot set property 'innerHTML' of null at file:///android_asset/www/cordova-2.1.0.js:3727

【问题讨论】:

  • "REFERENCE ERROR,id not defined" - 那是因为 变量 id 没有定义。如果您尝试显示 div 的 id,则需要通过对相关 div 的引用来执行此操作。
  • @nnnnnn,我已经宣布了不?...我正在接受var cnt1 = '&lt;div id="container'+val+'"&gt;&lt;span&gt;&lt;img src="img/abc'+val+'.png" style="float:left; " /&gt;&lt;/span&gt;&lt;div id="abc'+val+'"&gt;&lt;span&gt;&lt;h5&gt;'+value[k]+'&lt;/h5&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;'; ----&gt; console.log("div_id :"+id);
  • 你还没有声明它。您已在 newDiv 元素上设置了 id 属性,但尚未声明名为 id变量
  • 我已经编辑了我的评论..我正在考虑这两行代码
  • 我也是。顺便说一句,你得到一个“空白屏幕”的原因应该是那个 div 是参考错误正在停止你在该行上的脚本执行,所以你的元素实际上永远不会被附加到页面。此外,您应该从document.getElementById(+divIdName) 中的( 之后删除+

标签: javascript html innerhtml


【解决方案1】:

为了深入了解,您需要检查:

  1. “divIdName”的设置是什么
  2. 如果“swiper-slide(divIdName)”在您执行脚本时确实存在

该错误基本上表明您正在尝试将 innerHTML 设置为空,这反过来意味着您尝试选择的元素不存在。

如果您控制台记录所有变量,我们可以更好地帮助您。

附带说明:你真的应该清理你的代码并提升你的变量,调试意大利面条代码真的很难;-)

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多