Я не думаю, что это возможно в CSS, но в jQuery вы хотели бы использовать filter()
.
Убедитесь, что вы фильтруете на основе contents()
, а не children()
, так как вы будетехочу видеть текстовые узлы.
$( function() {
$('li').filter( function() {
return $(this).contents().first().is('a');
}).each( function() {
$('body').append($(this).text() + '<br/>');
});
});
http://jsbin.com/olufan
Требуется немного больше кода, чем делает все это в селекторе jQuery, но производительность должна быть намного лучше.Селекторы jQuery действительно быстро работают только при указании одного термина.