gpt4 book ai didi

jquery - 检查页面中是否存在src

转载 作者:行者123 更新时间:2023-12-01 06:58:29 25 4
gpt4 key购买 nike

我有一个生成 img 标签的脚本,我想确保相同的 img 不会被制作两次。这是我尝试创建的脚本:

var included = 0;
var src = "";

jQuery.fn.checkCard = function() {
if ($("#L_S_Inner").find($('img').attr(src))){
included = 0;
} else {
included = 1;
}
}

但是它不起作用。不知道我在这里做错了什么......

它是这样构建的,这样我就可以检查我的 img 创建脚本中“包含”的变量。

编辑

添加了img创建脚本:

$('#Results a').live('dblclick', function() {
src = $(this).attr('href');
getC = $(this).attr('class');
checkCard();

if (!(checkCard)) {
$(this).parent().append($('<img />', {'src': src, 'class': 'DCT ' + getC + ''}));
}
});

最佳答案

这里有几个问题。首先,尽管您有解释,但我认为不需要全局变量。这是丑陋且危险的做法 - 它应该是函数的返回值,除非你有充分的理由不这样做。

其次,正如 @sosborn 所说,该函数没有输入参数 - src 要么是另一个全局变量(您尚未显示),要么代码无法工作.

接下来,在 find 内部应该有一个选择器,而不是 jQuery 对象,在 attr 内部应该有一个属性名称(因此,是一个字符串 "src"),而不是一个值(大概 src 包含类似 http://... 的内容)。

另外,为什么要把它做成一个 jQuery 插件?

问题的字面解决方案,我会这样做:

var checkCard = function(src) {
return !!($('#L_S_Inner img[src="' + src + '"]').length);
}

更好的解决方案是通过手动跟踪来记住您创建的图像 - 速度更快。

var included = [];
// ...
// when you make an image
included[src] = true;
// ...
// when you want to know if it is there
if (included.hasOwnProperty(src)) // ...

更新:发布创建代码后,让我重写第二个解决方案:

var included = [];
$('#Results a').live('dblclick', function() {
var src = $(this).attr('href');
var getC = $(this).attr('class');

if (!included.hasOwnProperty(src)) {
$(this).parent().append($('<img />', {'src': src, 'class': 'DCT ' + getC + ''}));
included[src] = true;
}
});

顺便说一下,请注意我添加到内部变量中的 var。声明你的变量,这对健康有益。

关于jquery - 检查页面中是否存在src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com