2017-01-27 5 views
-2

jQueryでセレクタを保存するにはどうすればよいですか?jQueryセレクタの値が関数

checkbox: updatesVARIABLE_ID ex. updates2, updates3,... 
select: version-VARIABLE_ID ex. version-2, version-3, ... 

私のjQueryの:私は2つのIDを持っている

$("[id^=updates]").click('version-XXX', toggleSelection); 

私はjqueryのは、XXXで同じIDを取ることに何ができますか?

答えて

1

私はあなたがclickハンドラでは、あなたがクリックされたチェックボックスに基づいて使用するselectボックスIDを決定する方法を、求めていると思います。もしそうなら、あなただけのチェックボックスのIDの末尾に数字を取得し、その後、文字列の連結を使用することができます。

あなたは数字が続くいくつかの他の文字列にupdates1と、このようなを変更した場合、明らかに少し壊れやすいです
$("[id^=updates]").click(function() { 
    var digits = this.id.substring(7); // 7 = length of "updates" 
    var id = "version-" + digits; 
    $("#" + id).doSomethingWithTheSelectBox(); 
}); 

、 7はもう正しくありません。あなたは関係なく、文字列の長さの末尾に任意の数字をつかむために、正規表現を使用することができます。

$("[id^=updates]").click(function() { 
    var match = this.id.match(/(\d+)$/); 
    if (match) { 
     var id = "version-" + match[1]; 
     $("#" + id).doSomethingWithTheSelectBox(); 
    } 
}); 

別のオプションは、チェックボックスをselectのIDを格納することです:

<input type="checkbox" id="updates1" data-select="version-1"> 

そして、それを取得します:

$("[id^=updates]").click(function() { 
    var id = $(this).attr("data-select"); 
    $("#" + id).doSomethingWithTheSelectBox(); 
}); 
+0

ありがとうございます。最後は素晴らしいです。 $( "[id^= updates]")をクリックしてください。 .checked){ $(id).removeAttr( 'disabled'); } else { $(id).attr( 'disabled'、 'disabled'); } }); – Koda

関連する問題