Удалите элементы DOM из объекта jQuery

Это - псевдоним типа, не псевдоним пространства имен; полезно снять неоднозначность - например, против:

using WinformTimer = System.Windows.Forms.Timer;
using ThreadingTimer = System.Threading.Timer;

(PS: спасибо за выбор Timer;-p)

Иначе, если бы Вы используете и System.Windows.Forms.Timer и System.Timers.Timer в том же файле, который необходимо было бы продолжать давать полным именам (так как Timer могло сбивать с толку).

Это также играет роль с extern псевдонимы для использования типов с тем же полностью определенным именем типа от различных блоков - редкий, но полезный, чтобы поддерживаться.

<час>

На самом деле, я вижу другое использование: когда Вы хотите быстрый доступ к типу, но не хотите использовать постоянного клиента using, потому что Вы не можете импортировать некоторые конфликтующие дополнительные методы... немного замысловатые, но... вот пример...

namespace RealCode {
    //using Foo; // can't use this - it breaks DoSomething
    using Handy = Foo.Handy;
    using Bar;
    static class Program {
        static void Main() {
            Handy h = new Handy(); // prove available
            string test = "abc";            
            test.DoSomething(); // prove available
        }
    }
}
namespace Foo {
    static class TypeOne {
        public static void DoSomething(this string value) { }
    }
    class Handy {}
}
namespace Bar {
    static class TypeTwo {
        public static void DoSomething(this string value) { }
    }
}
49
задан Axel 16 April 2019 в 09:00
поделиться

3 ответа

Если вы говорите об удалении узлов из объекта jQuery, используйте функции filter или , но не . Подробнее см. Здесь .

Как использовать фильтр :

var ps = $('p');

//Removes all elements from the set of matched elements that do 
//not match the specified function.
ps = ps.filter(function() {
  //return true to keep it, false to discard it
  //the logic is up to you.
});

или

var ps = $('p');

//Removes all elements from the set of matched elements that 
//do not match the specified expression(s).
ps = ps.filter('.selector');

Как использовать , а не :

var ps = $('p');

//Removes elements matching the specified expression 
//from the set of matched elements.
ps = ps.not('.selector'); 
55
ответ дан 7 November 2019 в 11:52
поделиться

Как уже отмечалось, $. Filter () - отличный вариант для фильтрации данных. Также обратите внимание, что объект jQuery может обрабатываться как массив , и поэтому вы можете использовать для него методы массива, такие как splice () .

var people = $(".people");
people.splice(2,1); // Remove 1 item starting from index 2
8
ответ дан 7 November 2019 в 11:52
поделиться
<ul>
    <li class="1" />
    <li class="2" />
    <li class="3" />
    <li class="4" />
    <li class="5" />
</ul>

Фильтр выполняет итерацию по коллекции объектов jQuery. Для каждого из элементов: Верните true внутри filter () , чтобы сохранить текущий элемент в коллекции объектов jQuery. Верните false , чтобы удалить текущий объект из коллекции объектов jQuery.

$("li").filter(function ()
{
    if (this.className == "1" || this.className == "2") return true;

    return false;
});

В этом случае; анонимная функция, выполняемая filter () , вернет истину для элемента списка, который имеет класс 1 и / или 2 , удаляя последние три list-items из коллекции объектов jQuery.


Практический пример:

<ul>
    <li class="1" />
    <li class="2" />
    <li class="3" />
    <li class="4" />
    <li class="5" />
</ul>

Этот фрагмент кода добавляет класс («синий») в неупорядоченный список. Затем выделяет первые два пункта списка. Затем прикрепляет обработчик кликов к первым двум элементам списка:

$(function ()
{
    $("ul").addClass("blue").find("li").filter(function ()
    {        
        if (this.className == "1" || this.className == "2") return true;

        return false;

    }).addClass("highlight").click(function ()
    {
        alert("I am highlighted!");
    });
});
2
ответ дан 7 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: