Luc*_*s T 7 javascript tags reflection jquery
我有一个包含一些javascript的html组件.
该组件是模板引擎中的文件,因此可以使用它
javascript应该应用于模板中的对象,即:
<div class="grid" >
<div class="item" id="item_13">
This is item 13
</div>
<div class="item" id="item_14">
This is item 14
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$(HOW_DO_I_GET_PREVIOUS_ELEMENT???).someEffect(params)
})
</script>
Run Code Online (Sandbox Code Playgroud)
我已经检查了这个类似的问题,但最好的答案似乎依赖于当前脚本是'scripts'变量中的最后一个,因为下一个尚未加载.如果我用hjax请求附加html和js,情况就不会如此.
要100%明确:问题是关于获取前一个对象而不引用任何特定属性:没有标签的唯一ID,没有随机id,因为理论上它总是有机会出现两次,没有唯一的类属性,如完全相同的组件可以显示在HTML文档的另一部分中.
涉及两步过程的简单解决方案:
1)找出脚本标签的元素
2)找到该元素的先前兄弟
在代码中:
<div id="grid">
<!-- ... -->
</div>
<script type="text/javascript">
var scripts = document.getElementsByTagName("script");
var current = scripts[scripts.length-1];
var previousElement = current.previousSibling;
// there may be whitespace text nodes that should be ignored
while(previousElement!==null && previousElement.nodeType===3) {
previousElement = previousElement.previousSibling; }
if(previousElement!==null) {
// previousElement is <div id="grid"> in this case
$(document).ready(function(){
$(previousElement).someEffect(params);
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是一个很好的网络编程吗 不可以.您应该知道哪些元素应该根据您生成的内容应用效果.如果你有一个带有id的div,那个id是唯一的,你的生成器可以告诉它,如果它生成了div,它还必须生成为它设置jQuery效果的js.
但是,让我们忽略它; 它有用吗?喜欢魅力.
归档时间: |
|
查看次数: |
6613 次 |
最近记录: |