在img标记中,每次加载页面时,src都不是常量值。
<img src="http:/foo.com/directory/id=(random alphanumeric string ID)">
创建它的网络生成的字母数字字符串的数量通常只有200多个字符。
如果这是唯一的img标记,我只会执行getElementsByTagName,但页面源代码中有很多img。有没有办法只通过部分 src内容来定位标记源,然后.innerHTML只有 的ID号?我想它必须以这样的方式编写,直到它遇到“最后。”
答案 0 :(得分:4)
您可以迭代并检查src
var id = 'random alphanumeric string ID';
var images = document.querySelectorAll('img');
var match = null;
for (var i=0; i<images.length; i++) {
if ( images[i].src.indexOf(id) !== -1 ) {
match = images[i];
break;
}
}
// An image doesn't have innerHTML, but if it had, this is where you'd set it
做同样事情的某种更好的方式
var id = 'random alphanumeric string ID';
var match = [].slice.call(document.querySelectorAll('img')).filter(function(img) {
return img.src.indexOf(id) !== -1;
});
如果你想替换那部分
match.src = match.src.replace(id, 'something else');
如果您不知道ID是什么,并且您需要获取所有ID
var ids = [].slice.call(document.querySelectorAll('img')).map(function(img) {
var id = img.src.match(/\/id\=(.+)/);
return id && id.length ? id.pop() : '';
});
答案 1 :(得分:0)
你可以在jQuery中使用这种选择器
$("img[src$='id="+ id +"']").css({'border-color':'red', 'border-width':1, 'border-style':'solid'});
将检查src属性是否以'id =?'
结尾答案 2 :(得分:0)
如果我做对了,你就试图抓住&#34; id =&#34;它位于src
的{{1}}属性上,只有img
属性的一部分。
可以这样做:
src
然后您将拥有img[src*='part of the src attribute']
元素,您只需获取img
属性,并在&#34; id =&#34;之后获取所有内容。