如何使用jQuery Mobile删除"传递给getElementById()的空字符串"警告?

Mat*_*ker 34 firefox jquery-mobile

在使用Firefox(23.0.1)和jQuery Mobile(1.3.2)时,我从代码中收到以下警告: Empty string passed to getElementById().该消息显示在控制台中("工具">"Web Developer">"Web控制台").我想消除这个警告.

我见过很多人提出类似的问题,最值得注意的是:找到警告源的最佳方法:传递给getElementById()空字符串答案似乎一直指向使用'#',暗示用户有错.

我试图产生我觉得有效代码的最低限度,并且我发现这个警告仍然存在.我从其他帖子中假设,我的代码是错误的.谁能告诉我如何解决这个问题?

根据其他用户的评论,此警告不会出现在Chrome中(版本29.0.1547.57)

提前致谢!

重现此问题的最低有效代码:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
  <title>Test</title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="css/jquery.mobile-1.3.2.css" />
  <script src="js/jquery-1.9.1.js"></script>
  <script src="js/jquery.mobile-1.3.2.js"></script>
</head>

<body>
<div data-role="page" id="TestPage">

  <div data-role="content" id="TestContent">

    <p>This is a test</p>

  </div>

</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Dre*_*rew 13

在我的情况下,它是由于我忘记为标签的'for'属性指定值而引起的:

缺少身份证

<label for="">Stuff:</label>
Run Code Online (Sandbox Code Playgroud)

固定

<label for="someID">Stuff:</label>
Run Code Online (Sandbox Code Playgroud)

  • 刚刚遇到了同样的情况,并且能够纠正这个答案.谢谢! (3认同)

小智 -1

经过你的 jsfiddle 后,我仍然不知道函数 document.getElementById() 被调用的位置。我曾经也遇到过这个问题,但由于您使用的是 jquery-mobile,最好使用 $(#id) 作为选择器,只需检查此参考 document.getElementById() 或 $('#id') 是否在之前被调用DOM 已准备就绪..