web-dev-qa-db-ja.com

複数の可能な属性値で選択するためのよりクリーンな方法は?

JQueryには、コンマで区切られたセレクターのリストを使用せずに、複数の可能な属性値で選択する可能性がありますか?.

したがって、代わりに:

#list1 > option[value="1"], #list1 > option[value="2"], etc

何かのようなもの:

#list1 > option[value="1"|value="2"], etc
22
Decent Dabbler

私が知っていることではありません。 最もクリーンなこれを行うと考える方法は、最初にすべてのアイテムに共通の要素を使用して選択し、次に.find()または.filter() OR値が出力されます。

何かのようなもの

$('#list1 > option[value]')
    .filter('[value="1"],[value="2"]')
    ;
39

次のようなカスタムjQuery関数を作成できます。

$.fn.filterAttrVals = function (attr, vals) {
    var filter = '[' + attr + '="' + vals.split(',').join('"],[' + attr + '="') + '"]';
    return this.filter(filter);
};

あなたの例では、次のように使用できます。

$('#list1 > option').filterAttrVals('value','1,2');
2
MP.