2

我正在使用这个:

$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");

然后在稍后的时间点我想找到#pselectID 元素。我$vehicleTypeDropdown看起来像这样,它是jqLit​​e 对象:-

<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>

有两个问题——

  1. 它写在jqLit​​e文档中,该.find()方法只查找标签,而不是类或 ID。那我怎么得到

    $vehicleTypeDropdown = element.find(".vehicleTypeDropdown");

    作为具有jqLite内容的对象?

  2. 我怎样才能找到选项#pselect?我想手动删除它,请记住它可以在选项中按任何顺序排列。

4

2 回答 2

5

#使用不喜欢的idid="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/

于 2016-01-24T12:36:01.777 回答
0

如何在 Angular 的 jqLit​​e 元素对象中按 id 查找元素

Id在页面上应该是唯一的,因此您可以使用document.getElementByIddocument.querySelector找到它,然后将其包装在 jqLit​​e 元素中。

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>

如果条件为真,则在DOM中添加元素,如果不是 - 不是


如果此代码有效:

$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");

你得到了正确的对象,然后在你的页面上还包含了完整的 jQuery,因为正如你在 jqLit​​e 源代码中看到的那样,查找功能很简单

find: function(element, selector) {
    if (element.getElementsByTagName) {
        return element.getElementsByTagName(selector);
    } else {
        return [];
    }
},
于 2016-01-24T12:23:57.223 回答