我正在尝试使用jquery / javascript获取Div的位置。我有一个脚本来获得Div的位置,它的类是“内容”。我在广告公司工作,所以当我们在服务器上传代码时,会生成一个脚本,我们将其放在html页面中。脚本在iframe中加载,我们的代码在这里执行。
我的脚本在本地工作正常。这是我用来获得Div的位置的方法。
function ReadDivPos(selector) {
var _divPos = "";
$(selector).each(function() {
var p = $(this).offset();
var w = $(this).width();
console.log("Top " + p.top) //top
console.log("left " + p.left) //left
console.log("right " + p.left + w) //right
console.log("offsetWidth " + w); //width
_divPos += "Left " + p.left + ",Width " + w + ",Avail Width " + window.screen.availWidth + ",Right " + (p.left + w) + "\\n";
});
return _divPos;
}
console.log(ReadDivPos(".content"));
它停止在客户页面上工作然后我意识到我必须调用父Div来获取值。我在google上搜索并找到了这段代码来获取我已修改的父div以获得我的div。
var parentDoc = window;
while (parentDoc !== parentDoc.parent) {
parentDoc = parentDoc.parent;
}
parentDoc = parentDoc.document;
var parentDiv = parentDoc.getElementsByTagName('div');
var divs = [];
for (var i = 0; i < parentDiv.length; i++) {
if (parentDiv[i].className == "content") {
console.log("Div Class :content ");
}
}
现在,当我使用我的代码获取div的位置时,它无法正常工作
function ReadDiv() {
var parentDoc = window;
while (parentDoc !== parentDoc.parent) {
parentDoc = parentDoc.parent;
}
parentDoc = parentDoc.document;
var parentDiv = parentDoc.getElementsByTagName('div');
var divs = [];
for (var i = 0; i < parentDiv.length; i++) {
if (parentDiv[i].className == "content") {
console.log("Div Class :content ");
$(parentDiv[i].className).each(function() {
var p = $(this).offset();
var w = $(this).width();
console.log("Top " + p.top) //top
console.log("left " + p.left) //left
console.log("right " + p.left + w) //right
console.log("offsetWidth " + w); //width
_divPos += "Left " + p.left + ",Width " + w + ",Avail Width " + window.screen.availWidth + ",Right " + (p.left + w) + "\\n";
});
return _divPos;
}
}
}
知道我在这里做错了吗?希望提前感谢HElp