Найти элементы, где имя отличается от id, используя jQuery

Как написать выражение jQuery, которое найдет входные данные, где значение атрибута name отличается от значения атрибута id?

Это нужно найти

<input name="foo" id="bar" />

Это не должно быть найдено

<input name="foo" id="foo" />

Тривиальный материал, такой как $('input[name!=id]'), терпит неудачу, потому что выражение [] ожидает константу с правой стороны.

Ответ 1

Вы можете сделать это, используя фильтр(). И используйте обрезку, чтобы убедиться.

Изменить простую версию

$('input').filter(function(){
    return this.id != this.name;
});

Если есть какие-либо проблемы из-за конечных или ведущих пробелов, то можно использовать следующее.

$('input').filter(function(){
    thisID = $.trim(this.id);
    thisName =  $.trim(this.name);
    return thisID != thisName;
});