トップページ > プログラム > 2014年07月20日 > HARtqQ8b

書き込み順位&時間帯一覧

12 位/206 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000042000000006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
JavaScript 3

書き込みレス一覧

JavaScript 3
744 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:27:32.20 ID:HARtqQ8b
>>742

ウェブ関連の話しなら、こちらへどうぞ。

+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/hp/1403330196/
JavaScript 3
746 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:39:51.18 ID:HARtqQ8b
>>742 質問の答の前に、読みにくくて何やってるのかさっぱりだから、簡単な修正だけしてまず整える。
$(function(){
  $("#f1").each(function() {
    var pos;
    function call_list() {
      $.ajax({ url: "ajax_call.php", type: "post", data: {send: pos} }).done(function(ret) {
        $("#sel2, #sel3").children().remove();
        var sels = ["#sel1","#sel2","#sel3"];
        var pack = ret.split(":");
        for ( var i=0; i < pack.length; i++) {
          var sep = pack[i].split("@");
          for (var j=0; j < sep.length-1; j++) {
            var option = $("<option>");
            var opt = option.html(sep[j]);
            option.val(sep[j]);
            var sel = opt.appendTo(option);
            sel.appendTo(sels[i]);
          }
        }
      }).fail(function() { alert("error"); }
    }
    $(this).each(function() { call_list(); });
    $("#sel1").change(function() {
      pos = $("#sel1 option:selected").val();
      call_list();
    });
    $("#sel2").change(function() {
      pos = $("#sel2 option:selected").val();
      call_list();
    });
  });
});
JavaScript 3
747 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:46:16.58 ID:HARtqQ8b
明らかな重複処理を消して、無意味にスコープが長いposを消す。
最初これposはundefinedになってるけど、問題ないんだよな?
$(function(){
  $("#f1").each(function() {
    function call_list(pos) {
      $.ajax({
        url: "ajax_call.php",
        type: "post",
        data: {send: pos}
      }).done(function(ret) {
        $("#sel2, #sel3").children().remove();
        var sels = ["#sel1","#sel2","#sel3"];
        var pack = ret.split(":");
        for ( var i=0; i < pack.length; i++) {
          var sep = pack[i].split("@");
          for (var j=0; j < sep.length-1; j++) {
            var option = $("<option>");
            var opt = option.html(sep[j]);
            option.val(sep[j]);
            var sel = opt.appendTo(option);
            sel.appendTo(sels[i]);
          }
        }
      }).fail(function() { alert("error"); }
    }
    $(this).each(function() { call_list(); });
    $("#sel1, #sel2").change(function() {
      var pos = $(this).find("option:selected").val();
      call_list(pos);
    });
  });
});
JavaScript 3
748 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:54:49.16 ID:HARtqQ8b
二重ループが気持ち悪いから手を付ける。
#sel1のchildrenのremoveしてないがこれでいいのか?
何やってるかわからんから、まだ読む気になれない。
$(function(){
  $("#f1").each(function() {
    function call_list(pos) {
      $.ajax({
        url: "ajax_call.php",
        type: "post",
        data: {send: pos}
      }).done(function(ret) {
        $("#sel2, #sel3").children().remove();
        $.each(ret.split(":"), function(item) {
          var sep = item.split("@");
          for (var j=0; j < sep.length-1; j++) {
            var option = $("<option>");
            var opt = option.html(sep[j]);
            option.val(sep[j]);
            var sel = opt.appendTo(option);
            sel.appendTo("#sel" + i);
          }
        }
        })
      }).fail(function() { alert("error"); }
    }
    $(this).each(function() { call_list(); });
    $("#sel1, #sel2").change(function() {
      var pos = $(this).find("option:selected").val();
      call_list(pos);
    });
  });
});
JavaScript 3
749 :デフォルトの名無しさん[sage]:2014/07/20(日) 15:01:13.96 ID:HARtqQ8b
二重ループが気持ち悪いからさらに手を付ける。
これjのループが一つ少ないんじゃないのか?

$(function(){
  $("#f1").each(function() {
    function call_list(pos) {
      $.ajax({
        url: "ajax_call.php",
        type: "post",
        data: {send: pos}
      }).done(function(ret) {
        $("#sel2, #sel3").children().remove();
        $.each(ret.split(":"), function(item) {
          var values = item.split("@");
          values.pop(); //コードがあってる前提として一個削る
          $.each(values, function(value) {
            var option = $("<option>");
            var opt = option.html(value).val(value);
            var sel = opt.appendTo(option);
            sel.appendTo("#sel" + i);
          });
        })
      }).fail(function() { alert("error"); }
    }
    $(this).each(function() { call_list(); });

    $("#sel1, #sel2").change(function() {
      var pos = $(this).find("option:selected").val();
      call_list(pos);
    });
  });
});
JavaScript 3
750 :デフォルトの名無しさん[sage]:2014/07/20(日) 15:08:04.19 ID:HARtqQ8b
>>743のこの部分、何やってるのかわからん

> var option = $("<option>");
> var opt = option.html(sep[j]);
> option.val(sep[j]);
> var sel = opt.appendTo(option);

まだコード理解する気ないからまだちゃんと読んでないが、
変換するとこうなるはずなんだが?

var option = $("<option>").html(sep[j]).val(sep[j]);
var opt = option;
var sel = opt.appendTo(option);

さらに、

var option = $("<option>").html(sep[j]).val(sep[j]);
var sel = option.appendTo(option);

いいのかこれ?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。