gpt4 book ai didi

javascript - 获取动态创建的 DIV 在 FireFox 中不起作用的 ID

转载 作者:行者123 更新时间:2023-11-28 21:25:39 24 4
gpt4 key购买 nike

我已尽一切努力寻找这个答案,现在是凌晨 1:00,我必须去 sleep 并放弃:(在我妻子为我第二次离婚服务之前!:)

简而言之,我的问题是这样的,我使用谷歌 API(本地搜索、图像搜索和网络搜索)来查找我合并到网站中的各种字符串。它们被加载到动态 DIV 中,并且每组结果都被赋予一个带有与其编号相关的整数的 div。例如,

for (var i = 0; i < localSearch.results.length; i++) {

// Create HTML elements for search results


var letsseetitle = localSearch.results[i].titleNoFormatting;
letsseestreet = localSearch.results[i].streetAddress;
var letsseecity = localSearch.results[i].city;
var letsseeregion = localSearch.results[i].region;
var letsseecountr = localSearch.results[i].country;
var letsseestaticmapurl = localSearch.results[i].staticMapUrl;
var latresult = localSearch.results[i].lat;
var lng = localSearch.results[i].lng;

dv = document.createElement('div'); // create dynamically div tag
var attrname = "selectionbox" + i;
dv.setAttribute('id',attrname); //give id to it
var goFetchThis = letsseetitle + " " + letsseestreet + " " + letsseeregion + " " + letsseecountr;

dv.style.border="solid";
dv.style.padding="10px";
dv.style.backgroundColor="#80C4FF";
dv.title="Click to review this company.";

dv.innerHTML= letsseetitle + "<BR>" + letsseestreet + "<BR>" + letsseecity + "<BR>" + letsseeregion + "<BR>" + letsseecountr + "<BR>";

//var el = document.getElementById(attrname);
LoopIn = i;

// attach event onmouseclick to the created div tag
if(isIE){
dv.onclick = new Function("SelectThis(attrname, attrname)");
}
else{
dv.setAttribute("onclick", "SelectThis()");
}
document.getElementById("foundresultsdiv").appendChild( dv );









}

现在的问题是这样的。在 chrome(即 safari)和其他浏览器中,我对点击组件没有任何问题。 IE 中,当用户单击动态创建的 div 之一时,我的脚本会剥离内容并将其加载到准备好用户提交的表单中。

执行此操作的脚本如下;

function SelectThis(e) {
var targ;






if (!e) var e = window.event;

if (!e) var e = elTags[e].getAttribute("name");
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;

if (!e) var e = window.event;
if (e.target) targ = e.target;

else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
theId=targ.id



var TheStuffInside = document.getElementById(theId).innerHTML;
var linebyline = TheStuffInside.split("<br>");


var searchname = document.getElementById('searchname')
searchname.value = linebyline[0];

var stAddress = document.getElementById('stadd')
stAddress.value = linebyline[1];

var suburb = document.getElementById('suburb')
suburb.value = linebyline[2];

var stateLocal = document.getElementById('statelocal')
stateLocal.value = linebyline[3];

var country = document.getElementById('country')
country.value = linebyline[4];

}

现在我不能在这里吹牛,因为这个脚本根本不是我写的,而且总的来说它运行得很好。除了在火狐浏览器中。当我点击 Firefox 中的动态 div 之一时,什么也没有发生。事实上,该元素返回未定义的结果。我已经尝试了很多变化,从更改代码到在加载时添加事件监听器,但我一点运气都没有。

如果有任何建议,我们将不胜感激。谁知道呢 - 你甚至可以挽救我的婚姻!:)

顺便说一句,//beat safari bug 在技术上是不正确的,但我没有写它! :)

有任何问题请告诉我。

最佳答案

使用 JSLint 检查代码。错误较多。

关于javascript - 获取动态创建的 DIV 在 FireFox 中不起作用的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com