小编use*_*278的帖子

选择脚本标记之前的元素

如果input不编辑DOM,如何在下面的代码中选择第一个(如果需要,使用jQuery)?

<input type="text"/> <!-- The element I want to select -->
<script>
    // Select the input above
</script>
<input type="text"/>
Run Code Online (Sandbox Code Playgroud)

请注意,此代码示例之前和之后存在未知数量的输入和脚本标记,因此解决方案$("input:eq(1)")不起作用.

棘手的部分是在正在执行当前JavaScript inputscript标记之前选择放置的位置.

没有必要问我为什么要这样做,这纯粹是为了它的美丽,我想这样做而不必在我的输入中添加随机id,如果可能的话.

编辑
这就是为什么大多数答案都不起作用的原因:http://jsfiddle.net/2WqfP/

javascript jquery jquery-selectors

16
推荐指数
2
解决办法
4280
查看次数

根据DOM在DOM中的位置对包含DOM元素的数组进行排序

上下文

我构建了一个jQuery插件,我目前正在以一种方式将DOM元素存储在一个数组中,主要是为了能够在这些元素旁边存储更多信息,而不必使用不那么快data().

该数组看起来像:

[
    { element: DOMElement3, additionalData1: …, additionalData2: … },
    { element: DOMElement1, additionalData1: …, additionalData2: … },
    { element: DOMElement2, additionalData1: …, additionalData2: … },
]
Run Code Online (Sandbox Code Playgroud)

这个插件的工作方式阻止我以可预测的顺序将这些元素推送到数组,这意味着DOMElement3实际上可以找到低于DOMElement2s 的索引.

但是,我需要按照它们包含的DOM元素在DOM中出现的顺序对这些数组元素进行排序.前面的示例数组一旦排序,将如下所示:

[
    { element: DOMElement1, additionalData1: …, additionalData2: … },
    { element: DOMElement2, additionalData1: …, additionalData2: … },
    { element: DOMElement3, additionalData1: …, additionalData2: … },
]
Run Code Online (Sandbox Code Playgroud)

这是当然,如果DOMElement1之前出现DOMElement2在DOM,和DOMElement2DOMElement3.

丢弃的解决方案

jQuery add()方法以与DOM中出现的顺序相同的顺序返回一组DOM元素.我可以使用它,但要求是我使用jQuery集合 - 这意味着我必须重构上述插件的大部分以使用不同的存储格式.这就是为什么我认为这是最后的解决方案.

另一种方法? …

html javascript arrays jquery dom

8
推荐指数
1
解决办法
2602
查看次数

标签 统计

javascript ×2

jquery ×2

arrays ×1

dom ×1

html ×1

jquery-selectors ×1