可排序的新订单错误获取值tkEmail

时间:2016-02-23 13:21:57

标签: javascript jquery jquery-ui jquery-ui-sortable

我需要对具有相同id和类的div内的项进行排序。我有问题要返回tkEmail标记的值。我无法获得价值。 例: 第1项 订购:0价值:1

HTML:

<div id="sortable">
  <div class='sortear' tkEmail='1'>Item 1</div>
  <div class='sortear' tkEmail='2'>Item 2</div>
</div>

<br>

<div id="sortable">
  <div class='sortear' tkEmail='3'>Item 3</div>
  <div class='sortear' tkEmail='4'>Item 4</div>
</div>

JS:

$(document).ready(function () {
    $('div#sortable').sortable({
        update: function () { novaOrdem() },
    });
});

function novaOrdem(){
  $('div#sortable').each(function (i) {
    alert($(this).attr('tkEmail'))
  });
    }

1 个答案:

答案 0 :(得分:0)

Id必须是唯一的,并且您在divs的调用中实际上没有检查孩子each$('div#sortable').children()会为您提供所需内容。此外,tkEmail无效,最好使用data属性,例如data-tk-email

<强> HTML:

<div id="sortable">
  <div class='sortear' data-tk-email='1'>Item 1</div>
  <div class='sortear' data-tk-email='2'>Item 2</div>
  <div class='sortear' data-tk-email='3'>Item 3</div>
  <div class='sortear' data-tk-email='4'>Item 4</div>
</div>

<强> JQuery的:

$(document).ready(function() {
  $('div#sortable').sortable({
    update: function() {
      novaOrdem()
    },
  });
});

function novaOrdem() {
  var items = $('div#sortable').children();
  $.each(items, function() {
    alert($(this).html() + ', Order: ' + $(this).index() + ', Value: ' + $(this).data('tkEmail'))
  });
}

<强> Fiddle Demo