Есть ли у нас селектор jquery с использованием методов, таких как $ .id ('header'). Childs ('link'). WhenAttr ('extra'). All ('a') - PullRequest
3 голосов
/ 18 ноября 2011

Иногда мне нужно динамически построить строку селектора запроса. Но при использовании строк это выглядит ужасно

$('#header>link[' + extraAttr + '] ' + childElement);

Почти не читается, трудно поддерживать.

Так что мне интересно, если есть какой-либо API-метод method-query, просто позвольте нам построить запрос типа linq в .net

query = query.Where(xxx);
if(xxx){
     query.First(xxx);
}
return query;

1 Ответ

1 голос
/ 18 ноября 2011

Вы можете использовать имена переменных вместо жесткого кодирования значений в именах классов селектора.

В особенности для вашего случая это может быть возможным выбором.

var children = $('#header').children('link'); // get the link children of header
var aElements = []; // create an empty array for expected a elements
$.each(children) function(index, obj) { // operate on each of the link elements
    if(($(obj).attr('extra')).length > 0) { // if the element has the attribute extra
        aElements.push($(obj.attr('class') + " a")); // push the a elements in its child to the array. Eventually the array will contain the list of all the desired 'a' elements.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...