2015-01-09 2 views
2

У меня есть следующие элементы:Advanced CSS/Jquery селектор

<div customAttribute="1" > element 1 </div> 
<div customAttribute="1-1" > element 1-1 </div> 
<div customAttribute="1-1-1" > element 1-1-1 </div> 
<div customAttribute="1-1-2" > element 1-1-2 </div> 
<div customAttribute="1-2" > element 1-2 </div> 

Как я могу получить все элементы с CustomAttribute

1-1, 
1-2, 
... 
1-n 

но не

1-1-1, 
1-1-2, 
... 
1-1-n 

с CSS селектор?

+0

Возможный дубликат [wildcard \ * в CSS для классов] (http://stackoverflow.com/questions/5110249/wildcard-in-css-for-classes) – Antony

+0

@Antony Этот вопрос не такой, как у меня. В моем случае я хочу получить все элементы, которые соответствуют «1- », но я не хочу получать элементы, которые соответствуют 1 * –

+0

[Как это не то же самое?] (Http: /jsfiddle.net/2t8xosvx/) – Antony

ответ

4

Насколько я понимаю, вы можете использовать div[customAttribute^='1-']:not([customAttribute^='1-1-']). Это будет работать с JQuery и CSS, как вы могли видеть: http://jsfiddle.net/597y2e6r/1/

Если это не так, вам нужно более сложная картина соответствия CSS не может быть лучшим инструментом ... вы могли бы использовать вместо filter.

+0

Если есть элементы «1-2-n» и '1-n-n', тогда нет другого пути, кроме как повторять столько«: not() », сколько необходимо. Трафик фильтра был бы лучшим, если бы не каким-то образом изменил HTML. – BoltClock