2012-04-28 12 views
0

は、私は、次のコードを持っている、と私は少しそれを操作しますが、プレーンなJavaScriptでそうするより身近に感じたいと思います:この行は普通のJavaScriptでどのように書き直されますか?

jQuery -> 
    states = $('#person_state_id').html() 
    console.log(states) 
    $('#person_country_id').change -> 
    country = $('#person_country_id :selected').text() 
    options = $(states).filter("optgroup[label=#{country}]").html() 
    console.log(options) 
    if options 
     $('#person_state_id').html(options) 
    else 
     $('#person_state_id').empty() 

感謝を!

答えて

2
jQuery(function() { 
    var states; 
    states = $('#person_state_id').html(); 
    console.log(states); 
    return $('#person_country_id').change(function() { 
    var country, options; 
    country = $('#person_country_id :selected').text(); 
    options = $(states).filter("optgroup[label=" + country + "]").html(); 
    console.log(options); 
    if (options) { 
     return $('#person_state_id').html(options); 
    } else { 
     return $('#person_state_id').empty(); 
    } 
    }); 
}); 
+0

! – Abram

+0

「プレーンなjavascript」の説明と私を混同しました。 ;-)でも、jQueryはまだまだJavaScriptです。 –

4

まあ、私にとっては「プレーンJavaScriptで」言葉で記述されたコードは、次のようになります。

var states = document.getElementById('person_state_id').cloneNode(true); 
document.getElementById('person_country_id').onchange = function() { 
    var country = this.value; 
    var childs = states.childNodes; 
    for (var i in childs) { 
     if (childs[i].label == country) { 
      var options = childs[i].innerHTML; 
      document.getElementById('person_state_id').innerHTML = options ? options : ""; 
     } 
    } 
};​ 

は、ここでは例を確認してください:ここでhttp://jsfiddle.net/LmWqA/

+0

アブラムは「Coffeescriptとは対照的」を意味していました。 –

+0

ああ、私はそのコードを書き直すためにすべての私の知識を拾いました:) – VisioN

+0

LOL、Awesome。あなたはそれのために少なくともいくつかの投票に値するでしょう。 – Abram

0

は便利JSです私は頻繁に使用するコーヒーコンバータにそれは素晴らしい動作します。ありがとう働い

http://js2coffee.org/

関連する問題