3

我需要找到具有某个 img src 的属性的值。

<div class="ig_gallery_right_img" style="overflow-y: scroll">
  <img src="/corp/homeowner/images/promo/gallery_traditional_3_sm.jpg" 
            swap-section="featured_bath_traditional_1" 
            swap-image="/corp/homeowner/images/promo/gallery_traditional_3.jpg"              
            class="gallery_sidebar_sm" />
  <img src="/corp/homeowner/images/promo/gallery_traditional_5_sm.jpg" 
         swap-section="featured_bath_traditional_2" 
         swap-image="/corp/homeowner/images/promo/gallery_traditional_5.jpg" 
         class="gallery_sidebar_sm" />
</div>

我想知道是否有一种方法可以swap-section通过图像源获取值。

我努力了var ig_sec = $('img', url_main_pic).attr('swap-section');

但这给了我一个未定义的价值。有任何想法吗 ?

4

3 回答 3

4

使用属性选择器

var ig_sec = $('img[src="'+url_main_pic+'"]').attr('swap-section');

演示


此外,尽管您的代码以这种方式功能齐全,但 HTML 不会通过 W3C 验证器。如果这对您的用例很重要,您应该查看data-*@PSL 提到的属性。

于 2013-07-01T18:01:04.640 回答
1

您可以使用属性选择器进行匹配。

 var value=  $('img[src="'+ url +'"]').attr("swap-section");

但是swap-sectionandswap-image不是有效的 html 属性,因此您可能需要考虑在它们前面加上前缀data-*

<img src="/corp/homeowner/images/promo/gallery_traditional_3_sm.jpg" 
            data-swap-section="featured_bath_traditional_1" 
            data-swap-image="/corp/homeowner/images/promo/gallery_traditional_3.jpg"              
            class="gallery_sidebar_sm" />
  <img src="/corp/homeowner/images/promo/gallery_traditional_5_sm.jpg" 
         data-swap-section="featured_bath_traditional_2" 
         data-swap-image="/corp/homeowner/images/promo/gallery_traditional_5.jpg" 
         class="gallery_sidebar_sm" />

并使用数据 api 访问它

 var value=  $('img[src="'+ url +'"]').data("swap-section");

如果您想要通配符匹配,

var value=  $('img[src*="'+ url +'"]').data("swap-section"); //Remember for more than one match you will get the value of the first one alone. SO you may want to loop through.
于 2013-07-01T18:03:13.260 回答
1

这有帮助吗?

$('img[src$="gallery_traditional_3_sm.jpg"]').attr('swap-section');

据我所知,使用 src 前面的 $ 符号将指定您只关心末尾的 jpg 文件名。如果您不使用 $ 那么您需要使用图像的完整路径(包括域)。即使您在声明元素时没有将域作为 src 的一部分,但在内部域被添加为属性的一部分,因此尝试使用相对 src url 查找图像将不起作用,您将检索一个未定义的元素。

于 2013-07-01T18:09:55.980 回答