Jquery函数返回的函数代码不是值
Jquery function returning function code not value
我正在对嵌套在div(.catHOLDER(中的列表进行迭代,找到img标记并尝试返回img src。我遇到的问题是,函数返回了所有的函数源代码,而不是字符串值,但奇怪的是,如果我在循环中发出警报,它会返回字符串值;
$(document).ready(function(){
function getnestedimg() {
$('.catHOLDER ul').children('li').each(function(i,value) {
var imgstr = $(value).find('img').attr('src');
if (imgstr !== undefined) {
alert(imgstr);
}
});
}
getnestedimg();
});
上面的代码将显示一个带有img src路径的警报,但如果我试图返回imgstr,它会返回函数代码;
$(document).ready(function(){
function getnestedimg() {
$('.catHOLDER ul').children('li').each(function(i,value) {
var imgstr = $(value).find('img').attr('src');
if (imgstr !== undefined) {
return imgstr;
}
});
}
getnestedimg();
});
返回以下内容;
function getnestedimg() {
$('.catHOLDER ul').children('li').each(function(i,value) {
var imgstr = $(value).find('img').attr('src');
if (imgstr !== undefined) {
//alert(imgstr);
//ret urn gotya;
return imgstr.val();
}
});
}
有人能在我的困境中帮助我吗?或者是否有更好的方法来迭代嵌套在div中的children标签?
getnestedimg
函数中的return
语句实际上位于传递给each
的嵌套匿名函数中。这就是为什么它不向getnestedimg
的调用者返回任何值。您应该按照建议将此值存储在getnestedimg
的函数变量中。
此外,我建议您阅读闭包。
我会使用这样的东西:
var image_src = $('.catHOLDER ul > li img[src]').first().attr('src');
> li img[src]
仅选择具有src
属性并且是li
元素的后代的img
标记。.first()
只抓第一个。
如果没有元素符合这些条件,则image_str === undefined
。
$.fn.extend({
getsrc : function() {
return $(this).find(">ul> li img").map(function() {
return $(this).attr("src");
});
}
});
$(document).ready(function() {
var catHOLDERimgsrc = new Array();
catHOLDERimgsrc=$(".catHOLDER").getsrc();
console.log(catHOLDERimgsrc);
})
但是这个插件?我会直接做:
$(document).ready(function() {
var catHOLDERimgsrc = new Array();
catHOLDERimgsrc=$(".catHOLDER").find(">ul> li img").map(function() {
return $(this).attr("src");
});
console.log(catHOLDERimgsrc);
})
imo是迭代得到一组排列在数组中的值的最好方法(也就是说,如果你想要所有的图像src,否则你可以更改选择器,如果不够,你可以在map函数中做任何事情(
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数