jQuery的:select不是空的数据属性?
我试图select具有不为空的data-go-to属性的所有元素。 
 我已经尝试过$('[data-go-to!=""]')但奇怪的是,如果我这样做,似乎是select页面上的每一个元素。 
尝试
 $(':not([data-go-to=""])') 
更新:
为了不引导任何人误入歧途,这个答案将在旧版本的jQuery中工作,但不是未来的certificate。 由于@gmo和@ siva的答案似乎都适用于后续版本,所以我遵循(并鼓励你高举他们的答案)……当然,希望你有美好的一天。
 正如更进一步的参考和最新的 (5月14 日 ) (Aug'15) (sep'16) ( apr'17 )答案那样: 
空string:
如果
attr必须存在并且可以有任何价值(或根本没有价值)
  jQuery("[href]"); 
缺less属性:
如果
attr可以存在,如果存在, 必须有一定的价值
  jQuery("[href!='']"); 
或两者:
如果
attr必须存在, 必须具有一定的价值…
  jQuery("[href!=''][href]"); 
PS :更多的组合是可能的…
在jsFiddle中检查这个testing的例子:
-   jQuery v1.11.0 ->jsFiddle在线testing
-   jQuery v2.1.0 ->jsFiddle在线testing
-   jQuery v2.1.3 ->jsFiddle在线testing
-   jQuery v3.0.0-alpha1 ->jsFiddle在线testing
-   jQuery v3.1.1 Slim ->jsFiddle在线testing
-   jQuery v3.2.1 ->jsFiddle在线testing 最后的jQuery版本在jsFiddle at apr 03'17
-   jQuery Edge ->jsFiddle在线testing jQuery边缘版本 (谨慎使用)
或者在这个SO 代码片段中 。
*代码片段正在运行jQuery v2.1.1
 jQuery('div.test_1 > a[href]').addClass('match'); jQuery('div.test_2 > a[href!=""]').addClass('match'); jQuery('div.test_3 > a[href!=""][href]').addClass('match'); 
 div,a { display: block; color: #333; margin: 5px; padding: 5px; border: 1px solid #333; } h4 { margin: 0; } a { width: 200px; background: #ccc; border-radius: 2px; text-decoration: none; } a.match { background-color: #16BB2A; position: relative; } a.match:after { content: 'Match!'; position: absolute; left: 105%; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="test_1"> <h4>Test 1: jQuery('a[href]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div> <div class="test_2"> <h4>Test 2: jQuery('a[href!=""]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div> <div class="test_3"> <h4>Test 3: jQuery('a[href!=""][href]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div> 
 $('[data-go-to!=""]:[data-go-to]').each(function() { // Do Your Stuff }); 
 我不确定一个简单的select器,但你可以使用filter() : 
 $('[data-go-to]').filter( function(){ return ($(this).attr('data-go-to').length > 0); }); 
JS小提琴演示 。
参考文献:
-   filter()。
根据文件,这应该做到这一点
 :not([attr="value"]) 
DEMO
希望这可以帮助
具有“数据属性名称”,其值不为空:
 $('[data-attributename]:not([data-attributename=""])') 
'data-attributename'是否为空:
 $('[data-attributename]') 
JS小提琴的例子
 $('[data-go-to]').filter(function() { return $(this).data('go-to')!=""; }); 
 使用:not , .not() :empty只会检查元素本身是空的,而不是数据属性。 为此,您将不得不根据数据属性值进行过滤。 
小提琴
 $('[data-go-to]:not([data-go-to=""])') 
JSBIN
这对我有用
 $('[attributename]').filter('[attributename!=""]') 
尝试这个 :
 $('[data-go-to:not(:empty)]') 
这适用于我:
 $('.data .title td[data-field!=""]')