0

在 HTML 中,我有一个无序列表,其中包含以下项目

<ul id="sortable">
<li class="ui-state-default"><img src="images/john.jpg">John</li>
<li class="ui-state-default"><img src="images/lisa.jpg">Lisa</li>
<li class="ui-state-default"><img src="images/bill.jpg">Bill</li>
<li class="ui-state-default"><img src="images/sara.jpg">Sara</li>
</ul>

我想将选定项目的名称存储在一个数组中并且选择工作正常,问题是它还存储了 img src 以及名称。

这是我用于填充数组的代码:

var dataArr = [];
$("#sortable li").each(function(idx, elem) {
    dataArr[idx] = $(elem).html();
});

如果我当时要输出 dataArr[0],当我显然只想要“John”时,我会得到一个返回字符串“< img src="images/ john.jpg ">John”。

4

3 回答 3

2

试试这个:dataArr[idx] = $(elem).text();
.text()只会给你节点的文本子节点

于 2013-05-12T10:49:22.180 回答
2

使用text()代替html()

dataArr[idx] = $(elem).text();

或者,要便宜一点并避免每次迭代都包装在 jQuery 对象中的成本:

dataArr[idx] = elem.textContent || elem.innerText;

参考:

于 2013-05-12T10:49:34.193 回答
2
    var dataArr = [];
  $("#sortable li").each(function(idx, elem) {    
     dataArr[idx]   = $(elem).text();
    });
于 2013-05-12T10:49:44.330 回答