- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:所以这似乎是选择器的问题? jqLite 不支持选择器或它们的某些简化版本吗?
find('input') 和 find('button') 将返回结果,但如果我尝试使用“:first”或其他内容过滤它,那么它不会返回任何结果。
<小时/>我似乎无法让 jqLite 的 find() 返回我的 div 的任何子输入。
我的 ng-show 使用的 bool 函数上有一个 $watch 。因此,当这个 div 变得可见时,我想将焦点应用到 div 元素上,然后找到第一个输入后代并将焦点放在该元素上。
指令监视的 div 元素示例:
<div myDirective="function()">
text and stuff
<button>
<another button>
</div>
<div myDirective="function()">
<input>
</div>
这是我的指令中的辅助函数:
function highlightAndFocus(node) {
// focus the div
node.focus();
// get angular's jqlite wrapped element
var task = angular.element(node);
task.addClass('highlight');
// these return empty statements
console.log(task.find('input:first'));
console.log(task.find('button:visible:not("#cancel"):first'));
}
Angular 文档说它只能通过标签名称查找,但这不是“输入”和“按钮”吗?
https://docs.angularjs.org/api/ng/function/angular.element
这是怎么回事?当看起来应该支持 jquery 时,仅仅为了这一用例而包含 jquery 似乎很愚蠢。我正在打印 var 任务,并且可以在 Web 控制台中看到输入子元素。
最佳答案
JQlite 与 jQuery 不同。 如果 jQuery 在页面上可用,Angular 将使用它,但如果不可用,则使用 jQlite。
The docs明确指出 jQlite 的 .find()
仅支持按标签名称查找,它不能与其他选择器一起使用(如 :first
)。
您可以使用标准 DOM API,即 Element.querySelectorAll()
,如果您确实需要的话。
关于javascript - Angular jqLite .find() 不会返回任何输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307160/
我是一名优秀的程序员,十分优秀!