【问题标题】:Using PHP value in javascript - working in alert() but not getelementbyid在 javascript 中使用 PHP 值 - 在 alert() 但不是 getelementbyid 中工作
【发布时间】:2014-06-08 10:06:20
【问题描述】:

我正在使用这个:

$newPostID_fromCookie = $_COOKIE['scrollToBottom']+5000;
echo "
  <script>
  window.onload = function () {
    //document.getElementById('$newPostID_fromCookie').scrollIntoView();
    alert('$newPostID_fromCookie');
  }
  </script>
";

这正确显示了警报中 cookie 的值,但在尝试使用 getElementById 中的值时出现“为空”错误。

如何使用其中的值?

【问题讨论】:

  • 该元素 ID 是否存在?具体在这段代码运行时是否存在?
  • 那么给定ID的元素不在DOM中?
  • +来看,$newPostID_fromCookie是一个数字。 ID 不应是数字。
  • @NiettheDarkAbsol 基本上不允许在 html5 中使用?
  • @PeeHaa 是的,没错,数字 ID 在 HTML5 中是可以接受的。但是,较旧的浏览器不会喜欢它们,无论如何这只是一个坏主意,因为它使最终得到重复 ID 变得更加容易;)

标签: javascript php jquery cookies


【解决方案1】:

您的$newPostID_fromCookie 似乎是一个整数。 In xHTML, this is not valid,也许你的浏览器不喜欢它。您应该使用字符串(例如带有前缀):

document.getElementById('cookie_$newPostID_fromCookie').scrollIntoView();

当然,相应地更改您的 HTML。

【讨论】:

    【解决方案2】:

    getElementById() 执行 DOM 查找并返回具有指定 id 的第一个元素。 在这种情况下,$newPostID_fromCookie 应该是 DOM 中现有元素的 id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多