javascript - id 选择器与输入 :file

标签 javascript jquery

我刚刚在使用 JQuery 时遇到了这种奇怪的行为:

我的 HTML 中有其中之一:

<input type="file" name="pdfUrl" id="pdfUrl" />

这没有用:

$pdfUrl = $('#pdfUrl');

但这确实:

$pdfUrl = $('input:file')[0];

怎么会?

澄清一下,我的文档中只有一个带有 pdfUrl 的 ID。会不会跟name和id一样有关系?

运行 chrome 控制台会得到这个:

$('#pdfUrl')
[<input type=​"file" name=​"pdfUrl" id=​"pdfUrl">​]

所以这似乎有效。

最佳答案

仅包含一个对象的

$("#pdfUrl") 返回与可能包含数百个 DOM 对象的 $(".rows") 相同类型的对象.这极大地简化了 jQuery 编程,因为您不必根据从选择器查询返回的对象数量来做不同的事情。

当您引用 $('input:file')[0]; 时,您将进入 jQuery 对象的 DOM 对象内部数组(在选择器查询中填充)并获取该数组中的第一个 DOM 对象。那时,你有一个普通的 DOM 对象,而不是 jQuery 对象,你可以在它上面使用普通的 DOM 方法或属性。有时这是必需的(以获取实际的 DOM 对象),但通常,仅使用 jQuery 在 jQuery 对象上提供的方法会更容易。使用它们有很多优点,例如您可以将多个请求链接到大多数方法,它会自动为您遍历其内部数组中的所有 DOM 对象。

Have a look at this

关于javascript - id 选择器与输入 :file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20782198/

相关文章:

javascript - 瓦坎达添加收藏

javascript - 如何在 Node JS 中从 POST http.request 传递响应参数(包括正文)

javascript - Highcharts - 如何在 3D 散点图上的点工具提示(弹出窗口)中设置自定义内容或如何自定义点工具提示信息?

jquery - 对具有自定义数据参数的所有事件使用单个 ajax 函数

jquery - 使用 e.target == this 指定 hitbox

javascript - rails : Trying to render a partial on button click

javascript - 如果不存在,则将输入值添加到数组

javascript - 在 promise 中 react setState 导致无限循环

jquery - 失去焦点时关闭菜单或单击菜单项

javascript - 当 xaxis 是文本时,如何显示 jqplot 堆积条形图?