我的数据如下:
["<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;
});
答案 0 :(得分:1)
所以你基本上想要: 进入数组LI
的文字忽略了SPAN
元素
[ &#34; 0 ||橙&#34 ;, &#34; 1 ||芒果&#34 ;, &#34; 2 ||苹果&#34; ]
以下是使用.ignore()的示例(虽然在您的具体案例中可能不需要,因为您的span
没有任何实际内容,而且您可以只需转到.text()
... )
使用LI
.map()上的.text()创建了内容数组,但忽略了span
元素:
// 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;