ФорумПрограммированиеJavaScript → синхронизировать два списка

синхронизировать два списка

  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 декабря 2008 г. 22:00, спустя 1 минуту 15 секунд

    У тебя входящие данные какие? Два массива?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 22:05, спустя 5 минут 20 секунд

    нет html на входе готовый
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 декабря 2008 г. 22:07, спустя 1 минуту 49 секунд

    Ну а нужно сформировать массивы и передать в функцию. Я бы так делал.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 22:11, спустя 3 минуты 50 секунд

    покажи мастер класс
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 декабря 2008 г. 22:18, спустя 6 минут 53 секунды

    Я имею в виду не на JS массив формировать, это надо быть маньяком, чтобы на JS парсить хтмл и формировать массив.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 22:21, спустя 3 минуты 7 секунд

    а блять иначе низя
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 декабря 2008 г. 22:23, спустя 1 минуту 46 секунд

    Так бы и сказал, что проблема в формировании массива. Почему нельзя?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 22:50, спустя 27 минут 38 секунд

    просто незя
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:03, спустя 13 минут 14 секунд

    items = {};
    items1 = {};
    items2 = {};
    $list1 = $("#list1");
    $list2 = $("#list2");

    $list1.children().each(function () {
    $this = $(this);
    items[$this.attr("id")] = $this;
    items1[$this.attr("id")] = $this;
    }
    $list2.children().each(function () {
    $this = $(this);
    items[$this.attr("id")] = $this;
    items2[$this.attr("id")] = $this;
    }

    $("#list1,#list2").empty();

    for(i in items)
    {
    items.clone(true).appendTo($list1).addClass(items1 ? "red" : "normal");
    items.clone(true).appendTo($list2).addClass(items2 ? "red" : "normal");
    }


    попробуй, полюбишь
    phpdude ©
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:09, спустя 5 минут 54 секунды

    все сделал


    <html>
    <head>
    <title>op1um</title>
    <style>
    div div {
    width:100px;
    height:15px;
    margin:1px;
    background:green;
    }
    #left, #right{
    float:left;
    }
    .red{
    background:red;
    }
    .blue{
    background:blue;
    }
    </style>
    <script src="jquery-1.2.6.js"></script>
    <script>
    $().ready(function(){
    var n = null, r = null, x = 0;

    $("#left div").each(function(i,n){
    n = $(n).attr("nodeid");
    r = $("#right div[nodeid='"+n+"']");
    if(!r.length) {
    x = $("#right div").eq(i-1).prevAll(".red").length
    $("#right div").eq(x+i-1).after("<div nodeid='"+n+"' class='red'></div>")
    }
    })
    $("#right div").each(function(i,n){
    n = $(n).attr("nodeid");
    r = $("#left div[nodeid='"+n+"']");
    if(!r.length) {
    $("#left div").eq(i-1).after("<div nodeid='"+n+"' class='red'></div>")
    }
    })

    })
    </script>
    </head>
    <body>

    <div id="left">
    <div nodeid="e0"></div>
    <div nodeid="ea"></div>
    <div nodeid="eb"></div>
    <div nodeid="e1" class="blue"></div>
    <div nodeid="ee" class="blue"></div>
    <div nodeid="ef"></div>
    <div nodeid="eh"></div>
    <div nodeid="ei"></div>
    <div nodeid="e2" class="blue"></div>
    </div>
    <div id="right">
    <div nodeid="e0"></div>
    <div nodeid="ec"></div>
    <div nodeid="ed"></div>
    <div nodeid="e1" class="blue"></div>
    <div nodeid="ee" class="blue"></div>
    <div nodeid="eg"></div>
    <div nodeid="ej"></div>
    <div nodeid="e2" class="blue"></div>
    </div>

    </body>
    </html>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:10, спустя 1 минуту 7 секунд


    все сделал


    <html>
    <head>
    <title>op1um</title>
    <style>
    div div {
    width:100px;
    height:15px;
    margin:1px;
    background:green;
    }
    #left, #right{
    float:left;
    }
    .red{
    background:red;
    }
    .blue{
    background:blue;
    }
    </style>
    <script src="jquery-1.2.6.js"></script>
    <script>
    $().ready(function(){
    var ids = [], left = [], right = [], x = 0;

    $("#left div").each(function(i,n){
    n = $(n).attr("nodeid");
    r = $("#right div[nodeid='"+n+"']");
    if(!r.length) {
    x = $("#right div").eq(i-1).prevAll(".red").length
    $("#right div").eq(x+i-1).after("<div nodeid='"+n+"' class='red'></div>")
    }
    })
    $("#right div").each(function(i,n){
    n = $(n).attr("nodeid");
    r = $("#left div[nodeid='"+n+"']");
    if(!r.length) {
    $("#left div").eq(i-1).after("<div nodeid='"+n+"' class='red'></div>")
    }
    })

    })
    </script>
    </head>
    <body>

    <div id="left">
    <div nodeid="e0"></div>
    <div nodeid="ea"></div>
    <div nodeid="eb"></div>
    <div nodeid="e1" class="blue"></div>
    <div nodeid="ee" class="blue"></div>
    <div nodeid="ef"></div>
    <div nodeid="eh"></div>
    <div nodeid="ei"></div>
    <div nodeid="e2" class="blue"></div>
    </div>
    <div id="right">
    <div nodeid="e0"></div>
    <div nodeid="ec"></div>
    <div nodeid="ed"></div>
    <div nodeid="e1" class="blue"></div>
    <div nodeid="ee" class="blue"></div>
    <div nodeid="eg"></div>
    <div nodeid="ej"></div>
    <div nodeid="e2" class="blue"></div>
    </div>

    </body>
    </html>

    протесть чей код быстрее) ))) бугогагы адынадын адын
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:11, спустя 1 минуту

    дуд все классно но мне нельзя очищать оба списка((( там ивенты навешены и все такое

    ЗЫ 1800
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:12, спустя 29 секунд


    дуд все классно но мне нельзя очищать оба списка((( там ивенты навешены и все такое
    адын адын? clone(true) почетай)
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:15, спустя 2 минуты 39 секунд

    твой не отработал)))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 декабря 2008 г. 23:16, спустя 1 минуту 13 секунд


    твой не отработал)))
    я и не дебажил его. я дал идею :) идея верная с виду, ну может парочку синт ошибок или тп допустил, я ж в благноде написал
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!