Jquery中的.data()总是返回" undefined"

时间:2017-04-13 23:01:10

标签: javascript jquery html arrays list

我有一个名为li的{​​{1}}元素数组,我试图将列表中最新的项目与另一个值(称为$myList)进行比较,以便查看如果它们是相同的。具体来说,我将每个名为$partType的列表项中的属性与data-parttype进行比较。

这是我的代码:

$partType

在实际代码中,如果当前部件类型(var $lastItem = $myList.last(); // getting the most recent list item var lastPartType = $lastItem.data('parttype'); // getting the data attribute if (lastPartType != null) { //skip all this if the list is empty if (lastPartType == $partType) { // see if the part types are the same alert("Last part type: " + lastPartType + ", this part type: " + $partType + ". SAME!"); } else { alert("Last part type: " + lastPartType + ", this part type: " + $partType + ". DIFFERENT!"); } } )与列表中最新的部件类型不匹配,我的代码会向用户发送警告消息,而不是警报。 $partType)。如果匹配,则会添加列表并重复该过程。最终,我的目标是确保整个列表只能包含一种类型,方法是在用户尝试添加与已添加的内容不同的内容时向用户发出警告。

以下是lastPartType中的一个列表项的示例:

$myList

问题是当我在整个代码中发出警报以查看发生了什么时,结果<li data-parttype="new" data-id="151">1099628-15-53-27<i class="fa fa-check fa-fw text-success"></i></li> 总是&#34;未定义&#34;。我希望如果列表为空,但即使列表中的项目已满,它仍然是#34; undefined&#34;。

1 个答案:

答案 0 :(得分:1)

根据评论中的讨论,显然$ myList是List而不是列表Items。要获得最后一项,请执行以下操作:

var $lastItem = $myList.find('li').last(); // getting the most recent list item