首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getElementById返回null?(使用Vue)

getElementById返回null?(使用Vue)
EN

Stack Overflow用户
提问于 2018-01-04 18:53:39
回答 3查看 9.9K关注 0票数 3

所以我试着找出答案,但没有成功。

代码语言:javascript
运行
复制
window.onload = function() {
   console.log(document.getElementById('#sell'));
   if(document.getElementById('#sell')){
      alert('jo');
      //Init for Vue
   }
}

它可以和jQuery一起工作,但是不能和vanilla JS一起工作,为什么?

代码语言:javascript
运行
复制
console.log(document.getElementById('#sell')); 

结果返回NULL

jQuery示例:

代码语言:javascript
运行
复制
if ( $( "#sell" ).length ) {
   const app = new Vue({
          el: '#sell',
          components: { sellPicture }
   });
}

在我的sell.blade.php中看起来是这样的

代码语言:javascript
运行
复制
... 
<div id="sell">
    <sell-picture></sell-picture>
</div>
....

我的脚本添加在/body之前

这只是个小问题。我需要用于引导的jQuery,如果我不用它来改变DOM,那么在Vue中也使用它是不是很糟糕?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-04 18:55:36

从id参数中删除#,如下所示

代码语言:javascript
运行
复制
window.onload = function() {
   console.log(document.getElementById('sell'));
   if(document.getElementById('sell')){
      alert('jo');
      //Init for Vue
   }
}
票数 4
EN

Stack Overflow用户

发布于 2018-01-04 18:57:08

document.getElementById('#sell')不需要#来标识Ids。这是您将在jQuery选择器中使用的语法,但是DOM选择器将从字面上获取字符串并将其与ID属性值进行匹配。对于document.getElementByClassName()也是如此,您不需要使用.来标识类。

Mozilla MDN文档给出了此here的一个示例。

这应该是可行的:

代码语言:javascript
运行
复制
window.onload = function() {
   console.log(document.getElementById('sell'));
   if(document.getElementById('sell')){
      alert('jo');
      //Init for Vue
   }
}
票数 1
EN

Stack Overflow用户

发布于 2018-01-04 18:57:50

请尝试使用

代码语言:javascript
运行
复制
$(document).ready(function(){ console.log($("#sell")); });
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48093691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档