查找只有部分已知值的字符串
Find string with only partially known value
在 img 标签中,src 不是每次加载页面时的常量值。
<img src="http:/foo.com/directory/id=(random alphanumeric string ID)">
创建它的网络生成的字母数字字符串的数量一般只有 200 多个字符。
如果这是唯一的 img 标签,我会只执行 getElementsByTagName,但是页面源中有很多 img。有没有办法只通过 partial src 内容来定位标签源,然后 .innerHTML ID 号 only?我想它必须以这样一种方式编写,直到它在末尾遇到 "。
您可以迭代并检查 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() : '';
});
您可以在jQuery
中使用这种选择器
$("img[src$='id="+ id +"']").css({'border-color':'red', 'border-width':1, 'border-style':'solid'});
将检查 src 属性是否以 'id=?'
结尾
如果我没看错,您是在尝试获取 src
的 src
属性上的 "id=",只有 src
的一部分属性。
可以这样做:
img[src*='part of the src attribute']
那么你就有了img
元素,你只需要获取src
属性,获取"id=".
之后的所有内容
在 img 标签中,src 不是每次加载页面时的常量值。
<img src="http:/foo.com/directory/id=(random alphanumeric string ID)">
创建它的网络生成的字母数字字符串的数量一般只有 200 多个字符。
如果这是唯一的 img 标签,我会只执行 getElementsByTagName,但是页面源中有很多 img。有没有办法只通过 partial src 内容来定位标签源,然后 .innerHTML ID 号 only?我想它必须以这样一种方式编写,直到它在末尾遇到 "。
您可以迭代并检查 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() : '';
});
您可以在jQuery
中使用这种选择器 $("img[src$='id="+ id +"']").css({'border-color':'red', 'border-width':1, 'border-style':'solid'});
将检查 src 属性是否以 'id=?'
结尾如果我没看错,您是在尝试获取 src
的 src
属性上的 "id=",只有 src
的一部分属性。
可以这样做:
img[src*='part of the src attribute']
那么你就有了img
元素,你只需要获取src
属性,获取"id=".