我正在尝试将数据从此h5标记推送到我的收藏夹数组,但它仍然返回undefined。它确实返回了一些东西,并且它在点击时起作用,但它只是保持返回未定义。
<h5 id="favoriteartist"> Armin van Buuren </h5>
这是我的剧本。
$('#favoriteadd').live('click',function() {
var favorites = []
favorites.push( $('h5 #favoriteartist').val() );
console.log(favorites);
});
我在这里做错了什么?
答案 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
就像在说:
favoriteartist
的元素女巫是这些h5的(大)孩子。我们知道html中的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 "