<div class="selectedColumns" >
<a href="#" attributeid="19" >Driver License State</a>
<a href="#" attributeid="21" >Email</a>
<a href="#" attributeid="23" >Experience Level</a>
<a href="#" attributeid="26" >First Name</a>
<a href="#" attributeid="71" >Is Account Enabled</a>
<a href="#" attributeid="39" >Last Contacted Date</a>
<a href="#" attributeid="40" >Last Name</a>
<a href="#" attributeid="41" >Middle Name</a>
<a href="#" attributeid="6">Carrier</a>
</div>
リンク集があります。各リンクには、attributeidプロパティがあります。属性値でフィルタリングしたいのですが。したがって、上記のリンクで値41を指定すると、ミドルネームのリンクが返されます。
var link = $('.selectedColumns a:[attributeid==' + $(this).val() + ']');
これはうまくいきませんでしたか?
2の代わりに単一の=を使用します。また、:
var link = $('.selectedColumns a[attributeid=' + $(this).val() + ']');
これを主張することはエレガントではありませんが、コレクションでfilter()を使用すると、一致させる対象の柔軟性が大幅に向上し、文字列連結よりもエラーが発生しにくくなります。
var matching = $('.selectedColumns a').filter(function(){
return $(this).attr('attributeid') == 41
});
matching.prop('selected', true);
attribute-equals selector に:
やdouble =
は必要ありません。次のようにする必要があります。
$('.selectedColumns a[attributeid=' + $(this).val() + ']');
また、無効な属性を使用している場合は、HTML5で有効な data-
attributes whichareの使用を検討してください。たとえば、 attributeid
の代わりにdata-id
。