jQuery.push进入数组返回undefined

时间:2013-01-11 13:15:27

标签: jquery arrays push undefined

我正在尝试将数据从此h5标记推送到我的收藏夹数组,但它仍然返回undefined。它确实返回了一些东西,并且它在点击时起作用,但它只是保持返回未定义。

<h5 id="favoriteartist"> Armin van Buuren </h5>

这是我的剧本。

$('#favoriteadd').live('click',function() {
    var favorites = []
    favorites.push( $('h5 #favoriteartist').val() );
    console.log(favorites);
});

我在这里做错了什么?

2 个答案:

答案 0 :(得分:7)

你的选择器错了。简单使用:

$("#favoriteartist");

此外,您应该使用.text而不是.val

favorites.push( $("#favoriteartist").text() );

如果您使用的是jQuery 1.7+,则应使用.on而不是.live

$(document).on('click', '#favoriteadd', function() {
    var favorites = []
    favorites.push( $('#favoriteartist').text() );
    console.log(favorites);
});

现在您可以使用静态选择器更改document。如果绑定事件时#favoriteadd位于docuement中,您可以将其简单地绑定为普通事件:

$('#favoriteadd').on('click', function() {
    var favorites = []
    favorites.push( $('#favoriteartist').text() );
    console.log(favorites);
});

h5 #favoriteartist就像在说:

  1. 在整个页面上给我所有h5元素。
  2. 现在给我所有ID为favoriteartist的元素女巫是这些h5的(大)孩子。
  3. 我们知道html中的id总是唯一的,所以我们简单地说:

    1. 为我提供ID为favoriteartist的元素。

答案 1 :(得分:0)

您的代码未返回undefined。它返回一个包含一个元素的数组。元素为undefined,意味着您的选择器正在选择一个没有值的h5元素,并且该选择的val()将返回undefined。 .val()可用于例如。一个文本输入字段,用于获取用户在

中键入的值
<input type="text" id="t" value="..." />
...
$("#t").val(); //will return the value of the input element

对于h5元素,如果您希望获取该元素的文本内容,请使用.text()

$("#favoriteartist").text(); //will return " Armin van Buuren "