2016-06-17 4 views
0

У меня есть следующий список выбора опций и набор div с показанным содержанием. Я хочу сортировать div, когда я выбираю вариант, это можно сделать с помощью jquery?сортировка divs с помощью списка выбора

<selection id="sort"> 
     <select> 
      <option value="0">Please Select</option> 
      <option value="1">Author</option> 
      <option value="2">Date</option> 
      <option value="3">Title</option> 
     </select> 
</selection> 

<div id="container"> 
    <div class="box"> 
     <h1 class="title>Title<h1> 
     <h1 class="date"></h2> 
     <h1 class="name>john Doe</h3> 
    </div> 
</div> 
+0

ли вы имеете в виду, чтобы показать соответствующие h1 элемент в соответствии с выбранной опцией? –

+0

да в отсортированном виде, так как будет несколько div с полем класса – user6462102

ответ

0

Использовать этот

<selection id="sort"> 
    <select id="ddl"> 
    <option value="0">Please Select</option> 
    <option value="1">Author</option> 
    <option value="2">Date</option> 
    <option value="3">Title</option> 
</select> 
</selection> 

    div> 
     <div> 
      <h1 class="title">Title<h1> 
      <h1 class="date">date</h2> 
      <h1 class="name">john Doe</h3> 
     </div> 
    </div> 


    $(document).ready(function() 
{ 
    $(".title").hide(); 
    $(".date").hide(); 
    $(".name").hide(); 
}); 

$("#ddl").change(function() 
{ 
    var value = $("#ddl option:selected").val(); 
    if(value == "1") 
    { 
    $(".title").show(); 
    $(".date").hide(); 
    $(".name").hide(); 
    } 
    else if(value == "2") 
    { 
    $(".title").hide(); 
    $(".date").show(); 
    $(".name").hide(); 
    } 
    else if(value == "3") 
    { 
    $(".title").hide(); 
    $(".date").hide(); 
    $(".name").show(); 
    } 
}); 
0

Вы можете использовать sort из JQuery.

$("#ddl").change(function() { 
    var value = $("#ddl option:selected").val(); 

    if (value == 'date') { 
    boxOrdered = $('#container .box').sort(function(a, b) { 
    return new Date($(a).find("." + value).text()) > new Date($(b).find("." + value).text()); 
    }); 
    } else { 
    boxOrdered = $('#container .box').sort(function(a, b) { 
     return $(a).find("." + value).text().toLowerCase() > $(b).find("." + value).text().toLowerCase(); 
    }); 
    } 

    $("#container").html(boxOrdered); 
}); 

Попробуйте это: JSFiddle

Смежные вопросы