0

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

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

这是我的脚本。

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

我在这里做错了什么?

4

2 回答 2

7

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

$("#favoriteartist");

而且你应该使用.textnot .val

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

如果你使用的是 jQuery 1.7+,你应该使用.onnot .live

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

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

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

h5 #favoriteartist就像说:

  1. 给我整个页面上的所有 h5 元素。
  2. 现在给我所有具有 id 的元素,favoriteartist女巫是这些 h5 的(孙)子。

我们知道 html 中的 id 总是唯一的,所以我们简单地说:

  1. 给我带有 id 的元素favoriteartist
于 2013-01-11T13:17:44.707 回答
0

您的代码不会返回未定义。它返回一个包含一个元素的数组。该元素undefined意味着您的选择器正在选择一个h5没有值的元素,并且该选择的 val() 返回未定义。.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 "
于 2013-01-11T13:19:07.693 回答