2009-07-26 11 views
1

を介して私はそうのようなページの読み込みに動的に作成され、書き込まれているチェックボックスの束を持っている:XXは、データベースからアイテムのIDを表し解析ページのJavaScript

<input type='checkbox' name='quicklinkscb' id='quicklinkscb_XX'/> 

私はすべてのチェックボックスのためにJavaScriptでページを解析することができるようにしたいと:私はこれを行うことはできません

if(checkbox is checked) 
{ 
    add to add list 
} 
else 
{ 
add to remove list 
} 

は自分のIDを見つけて、それから「quicklinksscb_」とストリップチェックボックスのリストを経由して、私は、このすべてのクライアント側

をしたい誰かがいくつかの光

+0

は、あなたはjQueryのなどを使用することができます/いますか?あなたがこれを行う方法の例を持っているなら、これに対する答えはもっと些細かもしれません... – Shog9

+0

私はjQueryを使用することができ、実際にこれを使う方法がある場合はこれを使う傾向があります –

答えて

4
for(var i = 0; i < document.forms.length; i++) { 
    for(var j = 0; j < document.forms[i].elements.length; j++) { 
     var elem = document.forms[i].elements[j]; 
     if(elem.type == 'checkbox') 
      var tag = elem.getAttribute('id'); 
      tag.replace(/^quicklinkscb_/, ''); 
      if(elem.checked) 
       add_to_add_list(tag); 
      else 
       add_to_remove_list(tag); 
    } 
} 
を当てることができます10

jQueryので大幅に簡単:

$(':checkbox').each(function() { 
    var tag = $(this).attr('id'); 
    tag.replace(/^quicklinkscb_/, ''); 
    if($(this).attr('checked')) 
     add_to_add_list(tag); 
    else 
     add_to_remove_list(tag); 
}); 
+0

'document.getElementsByTagName( 'input' ) 'をチェックし、代わりに' type == 'checkbox''をそれぞれチェックしますか? – aditya

1

混沌で示されるjQueryのコードサンプルは短く、POJサンプルよりも読みやすいことを論争していないが、私はマルチKBのjQueryを使用しての正当性を問うだろうのライブラリこのアプリケーション。

マイPOJのバージョンは以下の通りアーディティヤの提案をたどる:

var 
    add_list = [], 
    del_list = []; 

for (var inputs = document.getElementsByTagName ('input'), cb, i = inputs.length; 
    i--;) 
    if ((cb = inputs[i]).type === 'checkbox') { 
    cb.id = cb.id.replace (/^quicklinkscb_/, ''); 
    (cb.checked ? add_list : del_list).push (cb); 
    } 

は、私がチェックボックスのidのは、変更することを求め、その後の要素がリストに追加/削除するために追加されるように、元の質問をお読みください。 混沌の同等の実装では、このようになります:

for (var inputs = document.getElementsByTagName ('input'), cb, i = inputs.length; 
     i--;) 
    if ((cb = inputs[i]).type === 'checkbox') 
    (cb.checked ? add_list : del_list).push (cb.id.replace ((/^quicklinkscb_/, '')));