jQuery删除span元素

时间:2016-10-18 01:26:15

标签: jquery

我的数据如下:

["<span id="srt-46-srt" class="ui-icon ui-icon-arrowthick-2-n-s"></span>0 || Orange", "<span id="srt-62-srt" class="ui-icon ui-icon-arrowthick-2-n-s"></span>1 || Mango", "<span id="srt-1-srt" class="ui-icon ui-icon-arrowthick-2-n-s"></span>2 || Apple"]

有人就如何删除整个范围(包括内容)提出建议

$( "button" ).button().on( "click", function() {

  var data = [];

  $( "#sortable li" ).each(function() {
    data.push( this.innerHTML );
  });

  $("#span").each(function(){
    data.remove();
  });

  console.log(data);
  jQuery.post(href="[% request.uri_base %]/api/sort", {data: data} , function(data){
  });

  return false;
});

1 个答案:

答案 0 :(得分:1)

所以你基本上想要: 进入数组LI的文字忽略了SPAN元素

  

[         &#34; 0 ||橙&#34 ;,         &#34; 1 ||芒果&#34 ;,         &#34; 2 ||苹果&#34;       ]

以下是使用.ignore()的示例(虽然在您的具体案例中可能不需要,因为您的span没有任何实际内容,而且您可以只需转到.text() ...
使用LI .map()上的.text()创建了内容数组,但忽略了span元素:

&#13;
&#13;
// https://stackoverflow.com/a/11348383/383904
$.fn.ignore = function(sel){
  return this.clone().find(sel||">*").remove().end();
};



$("button").on("click", function(event) {

  event.preventDefault();

  var data = $("#sortable li").ignore("span").map(function(){
    return $(this).text();
  }).get();

  // Now Send your `data` Array to server
  console.log(data);

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>GET DATA</button>

<ul id="sortable">
  <li><span id="srt-46-srt" class="ui-icon ui-icon-arrowthick-2-n-s">Some SPAN ICO 1</span>0 || Orange</li>
  <li><span id="srt-62-srt" class="ui-icon ui-icon-arrowthick-2-n-s">Some SPAN ICO 2</span>1 || Mango</li>
  <li><span id="srt-1-srt"  class="ui-icon ui-icon-arrowthick-2-n-s">Some SPAN ICO 3</span>2 || Apple</li>
</ul>
&#13;
&#13;
&#13;