getElementById返回null? (与Vue合作)

时间:2018-01-04 10:53:39

标签: javascript jquery

所以我试图找到答案,但没有成功。

window.onload = function() {
   console.log(document.getElementById('#sell'));
   if(document.getElementById('#sell')){
      alert('jo');
      //Init for Vue
   }
}

它适用于jQuery但不适用于vanilla JS为什么?

console.log(document.getElementById('#sell')); 

结果返回NULL

jQuery示例:

if ( $( "#sell" ).length ) {
   const app = new Vue({
          el: '#sell',
          components: { sellPicture }
   });
}

在我的sell.blade.php中,它看起来像那样

... 
<div id="sell">
    <sell-picture></sell-picture>
</div>
....

我的脚本在/ body

之前添加

只是一个附带问题。我需要jQuery for Bootstrap,如果我不用它来改变DOM,那么在Vue中使用它也不好吗?

3 个答案:

答案 0 :(得分:3)

从id param中删除#,如下所示

sudo

答案 1 :(得分:1)

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

Mozilla MDN文档提供了此here的示例。

这应该有效:

window.onload = function() {
   console.log(document.getElementById('sell'));
   if(document.getElementById('sell')){
      alert('jo');
      //Init for Vue
   }
}

答案 2 :(得分:-1)

请尝试使用

$(document).ready(function(){ console.log($("#sell")); });