use*_*278 16 javascript jquery jquery-selectors
如果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 input的script标记之前选择放置的位置.
没有必要问我为什么要这样做,这纯粹是为了它的美丽,我想这样做而不必在我的输入中添加随机id,如果可能的话.
编辑
这就是为什么大多数答案都不起作用的原因:http://jsfiddle.net/2WqfP/
new*_*ron 10
脚本始终在加载时运行,因此<script>正在运行的标记将始终是页面上的最后一个标记.使用纯JS,你可以这样得到它:
var scripts = document.getElementsByTagName('script'),
currentScript = scripts[scripts.length - 1];
Run Code Online (Sandbox Code Playgroud)
编辑:我以前弄错了.要获得此时的输入,您需要获得前面的兄弟,因此您将使用previousSibling.另外,请参阅下面关于文本节点和潜在解决方案的系统评论.
var scripts = document.getElementsByTagName('script'),
currentScript = scripts[scripts.length - 1],
input = currentScript.previousSibling;
Run Code Online (Sandbox Code Playgroud)
你也可以使用jQuery:
var currentScript = $('script').last();
Run Code Online (Sandbox Code Playgroud)
获得脚本后,您可以轻松获得前面的输入:
var input = $('script').last().prev();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |