2013-08-16 93 views
1

HTML代碼讓所有孩子的div jQuery的

<div class="dd" id="nestable"> 
      <ol class="dd-list"> 
       <li class="dd-item" data-id="1"> 
        <div class="dd-handle" id="1">Item 1</div> 
       </li> 
       <li class="dd-item" data-id="11"> 
        <div class="dd-handle" id="11">Item 11</div> 
       </li> 
       <li class="dd-item" data-id="12"> 
        <div class="dd-handle" id="12">Item 12</div> 
       </li> 
      </ol> 
</div> 

的ID我想通過所有child div IDS1,11,12通過AJAX。

這是我的代碼。

$('#nestable').nestable({ 
     group: 1 
    }) 
    .on('change', updateOutput,function(event){ 
    var a=$("#nestable :first-child").attr('id'); 
    $.ajax({ 
    url: 'drag', 
    data: {sorted_list: $(this).text()}, 
    datatype: 'json', 
    }); 
    }); 

我應該通過所有子div編號(1,11,12)下格(#nestable)。我怎樣才能做到這一點?

回答

0

你可以做這樣的事情:

var ids = []; 
var $childDivs = $(".dd div.dd-handle"); 

$($childDivs).each(function(){ 
    ids.push($(this).attr("id")); 
}); 

alert(JSON.stringify(ids)) 

FIDDLE

以你的樣品:

$('#nestable') 
    .nestable({ group: 1 }) 
    .on('change', updateOutput, function(event){ 
     var a=$("#nestable :first-child").attr('id'); 
     $.ajax({ 
      url: 'drag', 
      data: { 
       sorted_list: $(this).text(), 
       ids: function(){ 
        var ids = []; 
        var $childDivs = $(".dd div.dd-handle"); 

        $($childDivs).each(function(){ 
         ids.push($(this).attr("id")); 
        }); 
        return ids; 
       } 
      }, 
      datatype: 'json', 
     }); 
    }); 

或者:

$('#nestable') 
     .nestable({ group: 1 }) 
     .on('change', updateOutput, function(event){ 
      var a=$("#nestable :first-child").attr('id'); 
      $.ajax({ 
       url: 'drag', 
       data: { 
        sorted_list: $(this).text(), 
        ids: $(".dd div.dd-handle").map(function(x, y) { 
           return y.id; 
          }).toArray() 
       }, 
       datatype: 'json', 
      }); 
     }); 
0

試試這個:

var childids = $('#nestable .dd-handle').map(function(x, y) { 
    return y.id; 
}).toArray().join(','); 

// childids is "1,11,12" 

Demo

1

試試這個:

$('#nestable').nestable({ 
    group: 1 
}) 
.on('change', updateOutput,function(event){ 
    var childIds = $('.dd-list div', this).map(function() { 
     return this.id; 
    }); 

    $.ajax({ 
     url: 'drag', 
     data: { sorted_list: childIds }, 
     datatype: 'json' 
    }); 
});