意外と色々と実装方法がありそうですが
ひとまずこんな感じでいかがでしょうか。
ポイントはoptionを入れ替えるfunctionを共通化している所なんですが
共通化したことによって引数が少し多めになっています。
function placeSelectOptions($this, $child, $grandChildren, jsonval);
- $this
セレクトボックスのjQueryオブジェクト
- $child
セレクトボックスの子となるjQueryオブジェクト
- $grandChildren
セレクトボックスの孫となるjQueryオブジェクト(ない場合はnull/undefined)
- 戻り値
なし
ひ孫が出てきても動くと思います。