2

除了一些基本的 jQuery 东西外,我对整个 Javascript 都比较陌生。

最近我接手了一个使用 mootools 的小型本地项目,但我陷入了困境。

我有几个页面具有相对简单的 dom 结构和存储在数据库中的内容。每个页面上的第一个元素要么是一个 div,要么是一个具有固定宽度和高度的段落。

所述元素有三个变体,每个变体的高度不同,这意味着我们在每个页面上都有其中一个

<div class="header1"><img ...></div>
<p class="header2"><img ...></p>
<p class="header3"><img ...></p>

每一个后面都有几个包含文本或图像的段落。

我的问题:我必须在页面的第一个元素(div 或 p)和以下内容之间放置一个带有打印图标的小 div,但我不允许更改生成此页面的任何代码。

想法是使用 mootools(无论如何都会加载)将 div 放置在第一个元素下方的绝对位置上。

这可以使用 jQuery 轻松完成,但我必须使用 mootools 加上元素没有 ID。

有没有什么简单的方法可以获取或者在页面加载时的位置,然后在它的正下方放置 (position: absolute;) 一个 div?

到目前为止,我有这个(很差),它用“header1”类记录元素

window.addEvent('domready', function() {
$$('.header1').each(function(element){
    console.log(element);
});

});

4

2 回答 2

1

element.getPosition()获取元素的 x 和 y 位置,这应该允许您在某处创建一个新元素。getPosition()可能在 MooTools More 中,具体取决于您使用的版本。

在适当的位置向 DOM 添加新元素而无需复杂的定位可能会更容易,但这取决于您的 DOM。


从评论中判断您的反应,如果您只是想通过 id 以外的其他内容来匹配文档中的单个元素,这document.getElement()就是您所需要的,它的作用与 大致相同$$(),但返回第一个匹配项,或者null如果没有匹配项则返回。

于 2013-03-22T13:48:03.930 回答
0

是的当然。问题是如果元素没有 ID,如何获取你想要的元素。这和 jQuery 一样难,也和 jQuery 一样简单。

看看 mootools 的文档Element.getPosition()

于 2013-03-22T13:48:39.457 回答