使用javascript模拟onclick以获取动态img src
我正在尝试解析来自网站的数据使用javascript模拟onclick以获取动态img src,javascript,html,Javascript,Html,我正在尝试解析来自网站的数据 var inputs = document.getElementsByClassName('parentClass'); for (var i = 0; i < inputs.length; i++) { inputs[i].click(); var someimage = document.getElementsByClassName('class-img'); var myimg = someimage[0].getElements
var inputs = document.getElementsByClassName('parentClass');
for (var i = 0; i < inputs.length; i++) {
inputs[i].click();
var someimage = document.getElementsByClassName('class-img');
var myimg = someimage[0].getElementsByTagName('img')[0];
var mysrc = myimg.src;
console.log(mysrc);
}
var inputs=document.getElementsByClassName('parentClass');
对于(变量i=0;i
网站有这种行为,每当你点击div,它就会触发onclick,结果会显示不同的图像。我写这个javascript是为了让所有的图像从上到下有序排列。这就是为什么我要模拟点击。问题是它不知何故没有抓住新的一环,而是抓住了最后一环。
共有19个图像,它正在打印最后一个图像src 19次。有线索吗
最后,我不得不遍历页面源代码并手动获取onclick参数,以便使用AJAX发送post请求
var inputs = document.getElementsByClassName('parentClass');
for (var i = 0; i < inputs.length; i++) {
var str = (inputs[i].getAttribute('onclick'));
var params = str.split("nameOfFunction(")[1].split(',');
params[params.length - 1] = params[params.length - 1].replace(');');
$.ajax({
method: "POST",
url: "request.php",
data: {
id: parseInt(params[0]),
name: params[1],
belongsys: params[2],
type: params[3],
rep: params[4],
set: params[5],
mass: ' kg'
}
}).done(function(result){
$(".class-img").html(result).show();
var someimage = document.getElementsByClassName('class-img');
var myimg = someimage[0].getElementsByTagName('img')[0];
var mysrc = myimg.src;
console.log(mysrc)
array.push(mysrc);
});
}
var inputs=document.getElementsByClassName('parentClass');
对于(变量i=0;i
因为您很可能不让系统处理单击。这不是同时发生的是的,我相信是的。似乎在更改发生之前,控制台的注销是同步的。我可以更改代码吗?我们确定html在获取img之前已经更改了吗?您可以直接调用onclick处理程序,或者挂接到图像的事件中,以显示加载图像的时间(可能是var elem=document.getElementById(“linkid”);如果(typeof elem.onclick==“function”){elem.onclick.apply(elem);}
这是来自另一个线程的答案,但在替换它之后,它仍然表现为