以下是一些示例变量:
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');
答案 0 :(得分:0)
不幸的是,您无法实现所追求的目标。该变量只是一个string
-您无法确定它的设置方式,如何获取等。
您可以使用的最接近的解决方法是属性选择器。如果您有与图像的src
属性有关的字符串,则可以采用该字符串,并选择src
属性匹配的所有元素。
但是,这不能确保您将获得相同的选择器。如果我从一个图像获得src
属性,并且页面上还有十个其他图像,它们具有相同的src
,则反向查找将返回所有10个元素,而不仅仅是原始变量的1个来自。
var source = $('.container').find('img').attr('src');
var $element = $('[src=' + source + ']');
$element.hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<img id="myImage" src="SOURCE" />
</div>
是否可以设置两个变量,一个用于元素,一个用于将返回字符串的扩展名?然后以某种方式吸引他们?
var sourceElement = $('.container').find('img'); var sourceExtension = "attr('src')"; var sourceSrc = sourceElement.sourceExtension
假设您可以使用eval()
,但我个人避免像瘟疫那样使用它。也许更好的解决方案是:
var sourceElement = $('.container').find('img');
var getSrc = (elem) => $(elem).attr("src");
var sourceSrc = getSrc(sourceElement);
console.log(sourceSrc);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<img src="SOURCE" />
</div>