回答:
試す
$(':not([data-go-to=""])')
更新:
だれをも迷わせないために、この回答は古いバージョンのjQueryで機能しますが、将来性はありません。@gmoと@sivaの回答はどちらも新しいバージョンで動作しているようですので、回答を延期します(そして、賛成することをお勧めします)。
$('element:not([attribute=])'); // gets all of <element attribute="">
か$(':not([attribute=])'); // gets all of <* attribute="">
$('[data-go-to!=""]:[data-go-to]')
動作しないようですが、動作します。
同様に、さらに最新の (may'14) (aug'15) (sep'16) (apr'17) (mar'18) (mar'19)(may'20) ...
動作する答え:
空の文字列:
存在する必要があり、任意の値を持つことができる(またはまったくない)場合
attr
jQuery("[href]");
属性がありません:
場合は、可能性が存在すると存在している場合、しなければならないいくつかの値を持っています
attr
jQuery("[href!='']");
または両方:
存在しなければならず、何らかの値を持つ必要がある場合...
attr
jQuery("[href!=''][href]");
PS:より多くの組み合わせが可能です...
jQuery v1.11.0 ->
jsFiddle online testjQuery v2.1.0 ->
jsFiddle online testjQuery v2.1.3 ->
jsFiddle online testjQuery v3.0.0-alpha1 ->
jsFiddle online testjQuery v3.1.1 Slim ->
jsFiddle online test jQuery v3.2.1 ->
jsFiddle online test jQuery v3.3.1 ->
jsFiddle online test jQuery v3.4.1 ->
jsFiddle online test jsFiddleで利用可能な最後のjQueryバージョン jQuery Edge ->
jsFiddle online test jQueryエッジバージョン(注意して使用) *スニペットはjQuery v2.1.1を実行しています
$(':not([data-go-to=""])')
はもう機能していません
$('[data-go-to!=""]:[data-go-to]').each(function() {
// Do Your Stuff
});
Unrecognized Expression
エラーが発生します。
'data-attributename'があり、その値は空ではありません:
$('[data-attributename]:not([data-attributename=""])')
'data-attributename'が空かどうか:
$('[data-attributename]')
単純なセレクターについてはわかりませんが、次のように使用できますfilter()
。
$('[data-go-to]').filter(
function(){
return ($(this).attr('data-go-to').length > 0);
});
参照:
これを試して :
$('[data-go-to:not(:empty)]')
"Syntax error, unrecognized expression: [data-go-to:not(:empty)]"