我试图将数据从这个h5标签推送到我的收藏夹数组中,但它总是返回未定义的结果。它确实返回了一些东西,它在单击时起作用,但它只是一直返回未定义的内容。
<h5 id="favoriteartist"> Armin van Buuren </h5>这是我的脚本。
$('#favoriteadd').live('click',function() {
var favorites = []
favorites.push( $('h5 #favoriteartist').val() );
console.log(favorites);
});我在这里做错了什么?
发布于 2013-01-11 21:17:45
您的选择器错误。简单使用:
$("#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在文档中,您可以简单地将其绑定为普通事件:
$('#favoriteadd').on('click', function() {
var favorites = []
favorites.push( $('#favoriteartist').text() );
console.log(favorites);
});h5 #favoriteartist就像在说:
favoriteartist是这些h5的(孙-)子元素。我们知道html中的id总是唯一的,所以我们简单地说:
给我id为favoriteartist.的元素
发布于 2013-01-11 21:19:08
您的代码不会返回未定义的。它返回一个只有一个元素的数组。元素是未定义的,这意味着您的选择器正在选择一个没有值的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 "https://stackoverflow.com/questions/14278985
复制相似问题