如何在Angualar的jqLite元素对象中按id查找元素
How to find element by id in Angualar's jqLite element object
我正在使用这个:
$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");
然后在稍后的时间点,我想找到 #pselect
ID 元素。我的$vehicleTypeDropdown
看起来像这样,它是jqLite对象:-
<select class="vehicleTypeDropdown" id="vehicleType">
<option id="#pselect" value="">Please Select</option>
<option ng-repeat="types in selectedType" value="Vt3" class="ng-scope ng-binding">vt3</option>
<option ng-repeat="types in selectedType" value="Vt4" class="ng-scope ng-binding">vt4</option>
</select>
有两个问题——
jqLite 文档中写道
.find()
方法只查找标记,而不查找类或 id。那么我该如何获得$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");
作为内容
jqLite
对象?我怎样才能找到带有
#pselect
的选项?我想手动删除它,请记住它可以在选项中按任何顺序排列。
使用 id 而不#
,就像 id="pselect"
<select class="vehicleTypeDropdown" id="vehicleType">
<option id="pselect" value="">Please Select</option>
<option ng-repeat="types in selectedType" value="Vt3" class="ng-scope ng-binding">vt3</option>
<option ng-repeat="types in selectedType" value="Vt4" class="ng-scope ng-binding">vt4</option>
</select>
像这样的捕获元素
var elem = angular.element(document.querySelector('#pselect'))
elem.remove()
http://jsfiddle.net/vorant/4sbux96k/1/
如何在 Angular 的 jqLite 元素对象中按 id 查找元素
Id
在页面上应该是唯一的,所以你可以用document.getElementById或document.querySelector找到它,然后将其包装在jqLite元素中。
var pselect = angular.element(document.getElementById('pselect'));
这适用于:
<option id="pselect" value="">
但是如果你在 HTML 中有:
<option id="#pselect" value="">
您应该使用:
var pselect = angular.element(document.getElementById('#pselect'));
我只想找到它并动态删除它,以便用户无法在选择中看到该选项。
在这种情况下,您可以简单地使用ng-if
指令:
<select class="vehicleTypeDropdown" id="vehicleType">
<option id="pselect" ng-if="condition" value="">Please Select</option>
<option ng-repeat="types in selectedType" value="Vt3" class="ng-scope ng-binding">vt3</option>
<option ng-repeat="types in selectedType" value="Vt4" class="ng-scope ng-binding">vt4</option>
</select>
如果条件为 true,则在 DOM 中添加元素,如果不是 - 不是
如果此代码有效:
$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");
并且你得到正确的对象,然后在你的页面上也包含了完整的jQuery,因为正如你在jqLite源代码中看到的那样,查找功能很简单
find: function(element, selector) {
if (element.getElementsByTagName) {
return element.getElementsByTagName(selector);
} else {
return [];
}
},
相关文章:
- 如何查找流星集合中最后一个元素/对象的id
- 如何在JSXGraph中传递元素对象而不是id
- 手动呈现原型JS元素对象
- 为什么jQuery's每个循环的函数都保存对元素对象的引用
- 通过 html 图像元素对象显示图像
- 在 Plain/Pure Javascript 中,你如何找出元素对象具有哪些可用的方法或属性
- 如何在Angualar的jqLite元素对象中按id查找元素
- XPath 元素/对象在使用 document.evaluate 时未定义
- 如何使用JQuery获取元素对象
- 使用jQuery元素对象作为数组键
- 传递元素对象
- Mootools元素>对象# & lt; HTMLDivElement>没有方法'addEvent'
- 迭代所有节点对象,而不仅仅是元素对象
- 当一个元素被点击时,另一个元素(对象)发送给函数
- 正在分配属性'由getElementById()在语句中返回的HTML元素对象的s
- 创建一个新的用户界面元素对象的Javascript原型
- 在javascript中继承了DOM元素对象!这段代码有什么问题?
- AppendChild不工作!,从DOM元素对象继承.我做错了什么?
- 有没有办法“得到”?就像getElementById()能够获取html元素对象一样,使用函数来获取javascript
- 如何返回javascript DOM元素对象,并从调用者appendChild(obj)它