Удалить элементы без идентификатора из выбора jQuery? - PullRequest
2 голосов
/ 27 января 2012

Как удалить элементы без свойства id из коллекции (не из самой DOM), для которой был вызван плагин?

<span id="id737293" class="attach"></span>
<div class="attach"></span>

Вызов jQuery и плагин:

$('.attach').attach();

(function($) {

    $.fn.attach = function(options) {
       // Remove elements (without id) on which the plugin was invoked
       var valid = ???;

       // Loop each valid element (with id attribute) and process
       valid.each(function() {
       });

       return this; // Maintain chainability
    };

})(jQuery);

Ответы [ 3 ]

5 голосов
/ 27 января 2012

Используйте .filter для удаления элементов без идентификатора.

(function($) {

    $.fn.attach = function(options) {
       // Remove elements (without id) on which the plugin was invoked
       var valid = this.filter(function() { return !!this.id; });

       // Loop each valid element (with id attribute) and process
       valid.each(function() {               
       });

       return this; // Maintain chainability
    };

})(jQuery);

$('.attach').attach();

http://jsfiddle.net/5Kn9W/2/

или var valid = this.not(':not([id])'); - http://jsfiddle.net/5Kn9W/1/

1 голос
/ 27 января 2012
var elementsWithClassAttachAndHasId = jQuery(".attach:has([id])");
var elementsWithClassAttachAndNoId = jQuery(".attach:not([id])");
1 голос
/ 27 января 2012
 if(!$(elem).prop("id")){
   $(this).remove()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...