<div id="store">
<img class="act" src="imgT/01.jpg" alt="img">
<img src="imgT/05.jpg" alt="img">
<img src="imgT/02.jpg" alt="img">
</div>
我需要搜索#store
的孩子,并获得由“05”组成的孩子的src
属性。
类似的东西:
var src = $("#store").children().find("05").attr("src");
alert (src);
我需要imgT/05.jpg
作为结果。
答案 0 :(得分:3)
您可以使用jquery外卡:
<div id="store">
<img class="act" src="imgT/01.jpg" alt="img">
<img src="imgT/05.jpg" alt="img">
<img src="imgT/02.jpg" alt="img">
</div>
<script type="text/javascript">
$(document).ready(function () {
var src = $("#store").find("img[src*='05']").attr("src");
alert(src);
});
</script>
答案 1 :(得分:1)
你可以试试这个。
var img_list = $("#store").children()
$.each(img_list,function(index,value){
var src = $(value).attr("src");
var _src = src.split(".")[0];
_src = src.split("/");
if (_src == "05"){
alert(src)
}
})
答案 2 :(得分:1)
$("#store").children().each(function() {
var img = this.src.split('/').pop();
if(img == '05.jpg') {
alert(this.src);
}
});
http://jsfiddle.net/v28cdyvo/1/
更进一步 如果无法确定图片扩展名,我们可以设置正则表达式来提取除数字之外的所有内容。当然,您的图像存储将文件名称作为整数,并为其预先填充0。要做到这一点,你可以这样做:
img = img.replace(/[^0-9]/g, '');
考虑 jQuery的each()
方法,一旦找到匹配项,就无法摆脱循环。您可能认为可以执行break
声明,但这是非法的。如果你有很多图像,那么这可能会影响性能。你只需使用一个基本的for循环就可以遍历对象数组,然后在找到它时就中断。
根据此bechmark
,我的代码执行速度最快答案 3 :(得分:1)
var src = $('#store img').filter(function () {
return $(this).attr('src').match('05')
}).attr('src')
console.log(src);
请注意,这会在图片src属性中的任何位置匹配05
。