我是js和jquery的新手。在尝试理解它的同时,我想到了一个问题。但在此之前,我想对自己的问题中包含子问题表示歉意。

首先,我看到in this question,.checked应该与DOM对象一起使用,而.attr()必须与jquery对象一起使用。现在我的问题是:

   <html>

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>

<body>
    <ul>
        <li>List element 1</li>
        <li>List element 2</li>
    </ul>
    checkbox1:<input type='checkbox' id='checkbox1'/>
    checkbox2:<input type='checkbox' id='checkbox2'/>
    <script>
        var checkboxes=$('input');
        checkboxes[1].checked=true;
    </script>
</body>
</html>


在这里,checkboxes变量是jquery对象还是dom元素?我以为$()返回一个jquery对象(如here所述),但是当我尝试使用checkboxes.attr('checked',true)而不是checkboxes[1].checked=true;时,出现了错误。我的另一个假设是,checkboxes变量可能是一个jQuery对象,而checkboxes[1]是一个dom元素吗?我对吗?

编辑

还有一个问题,当我想学习变量的类型时,我正在向浏览器的控制台编写以下语句:typeof(VariableName)。不幸的是,当我写typeof(checkboxes)或typeof(checkboxes 1)时,总是得到Object结果。但我知道我知道其中一个是Jquery对象,另一个是DOM对象。有什么功能可以给我这些区别?

最佳答案

其中一个是Jquery对象,另一个是DOM对象。有没有
  功能给我这些差异?


您可以使用:

obj instanceof jQuery


如果您想要更通用的方式,可以使用:

Object.prototype.toString.call(myVariable);

关于javascript - .checked和.attr(checked,boolean)之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32411505/

10-09 17:20