Javascript 如何在jQuery对象选择器链中找到最后一个实际元素?

Javascript 如何在jQuery对象选择器链中找到最后一个实际元素?,javascript,jquery,Javascript,Jquery,以下是一些示例变量: var source = $('.container').find('img').attr('src'); var source = $('.container').find('img').attr('href'); var source = $('.container').find('img').html(); 对于这些示例中的每一个,我都需要从选择器中获取实际的元素 以下操作失败: source.hide() 与我正在寻找的功能类似,但如果变量返回字符串,则该功能不起

以下是一些示例变量:

var source = $('.container').find('img').attr('src');
var source = $('.container').find('img').attr('href');
var source = $('.container').find('img').html();
对于这些示例中的每一个,我都需要从选择器中获取实际的元素

以下操作失败:
source.hide()

与我正在寻找的功能类似,但如果变量返回字符串,则该功能不起作用

end的工作原理如下:

$('.container').find('img').css('background', 'red').end().find('.something-else').css('background', 'green');
这是因为
css
方法正在应用样式,而不是返回信息

以下示例将失败,因为
css
正在返回背景css:

$('.container').find('img').css('background').end().find('.something-else');

听起来很不幸,你无法实现你的目标。变量只是一个
字符串
——您无法找到它的设置方式、检索方式等


您可以使用的最接近的解决方法是属性选择器。如果您有一个与图像的
src
属性相关的字符串,则可以获取该字符串,并选择
src
属性匹配的所有元素

但是,这并不能确保您得到相同的选择器。如果我从一个图像中获得
src
属性,并且页面上有十个其他图像具有相同的
src
,则反向查找将返回所有10个元素,而不仅仅是原始变量来自的1

var source=$('.container').find('img').attr('src');
var$element=$('[src='+source+']');
$element.hide()


是否要隐藏选择中的最后一个元素?请添加您的HTML结构我不太确定HTML与这个问题有什么关系?这个问题一点也不清楚-听起来像是XY问题。你能不能向我们解释一下你试图解决的实际问题,而不是询问这个非常具体和不明确的解决方案?所以有人正在将
源代码
传递到你的插件中,它可能是任何类型的对象?一个字符串,或者一组元素,或者其他任何东西?是这样吗?你还没有真正弄清楚这里的后勤限制是什么。如果
source
是一个字符串,你想知道它来自哪个元素?这是不可能的,它只是一个字符串,它不再与以前从哪里提取它有任何关系。也许你的插件应该要求调用者提交一个jQuery对象,但由于我们不知道插件或这个变量的用途,很难知道这是否合理。比如你可能已经从@TylerRoper那里得到了你所需要的东西(这很好,因为我还没有完全明白你想要做什么)。顺便说一句,这听起来可能会帮助您了解jquery链接,以避免遇到一些障碍。这可能会有帮助。我认为这不是一个可接受的解决方案。就像你说的,因为你在做反向查找,你不能保证它是正确的元素,那么你的问题的答案就是“你不能”。将变量设置为
src
字符串后,即是如此。该变量现在只是一个
字符串
。您无法获得有关如何设置该字符串或该字符串来自何处的任何信息。该变量不是引用的-也就是说,它没有存储
$('.container').find('img').attr('src')-它正在存储结果。@TylerFowle没问题。我已经更新了我的答案,以反映额外的信息,同时仍然保持最接近的“变通方法”。是否可以设置两个变量,一个用于元素,另一个用于将返回字符串的扩展名?然后不知何故把他们干掉<代码>var sourceElement=$('.container')。查找('img');var sourceExtension=“attr('src')”;var sourceSrc=sourceElement.sourceExtension
@TylerFowle我不完全清楚您所受的限制,但我已经编辑了我的答案,并提供了更多信息。