JQuery中是否有选择器或函数可以选择“文档中的当前位置”?
例如,如果我使用
<script>document.write("test");</script>
输出将放在HTML文档中“此代码”所在的“位置”。但是jQuery总是需要一个特殊的选择器。当然我可以使用带有唯一选择器的“marker div”,但是也可以在JQuery表达式所在的位置插入带有JQuery的HTML吗?
我试过
<script>$(this).after("test");</script>
但这不起作用。非常感谢帮助如何解决这个问题。谢谢!
编辑:
关于下面的问题:想法不是直接用document.writeln
打印出来的东西(它更像是一个例子),而是用jQuery确定文档中的当前“位置”(而不是从通过使用jQuery功能对元素的“导航/遍历”进行定位。
也许这可以被称为“从DOM树中当前位置开始的元素的相对遍历”?
<div>Position1</div>
<div>Position2</div>
<script> HOW TO GET THIS POSITION WITH JQUERY (SEE NOTES BELOW) TO FURTHER NAVIGATE FROM HERE ON (RELATIVELY) TO THE PREVIOUS OR NEXT ELEMENT</script>
<div>Position3</div>
<div>Position4</div>
注意:带有jQuery语句的script标签将动态插入到文档中,我感兴趣的是能够使用jQuery从文档中的这个位置导航。在脚本标签中,我可能会称之为“通过JAGERY标记下一个HTML元素”或“给我下一个HTML元素值属性”。如上所述,可以插入“标记div”来确定位置,但问题是,如果JQuery“自主地”能够确定它在DOM树中的位置(从那里以“相对方式”开始导航)上)。
答案 0 :(得分:3)
$(“script:last”)似乎适用于所有现代浏览器(IE除外)
<html>
<head>
<title>test</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.5.min.js"></script>
</head>
<body>
<script type="text/javascript">
document.write($("script:last").text());
</script>
<script type="text/javascript">
document.write("---");
document.write($("script:last").text());
</script>
</body>
答案 1 :(得分:1)
如果我理解正确,你想要一个与document.write完全相同的功能,我不明白你为什么要这样,而不仅仅是使用document.write?
答案 2 :(得分:0)
这很简单:只需为内联脚本标记指定一个id属性:
<script id="hello">alert("hello");</script>
那么你可以这样做:
$('script#hello').after('<span style="color:red">this is my new content</span>');
<强>更新强>
因为您不想修改html标记,所以唯一的选择是根据代码中的外观顺序访问脚本标记。
$('script').each(function(index){
// "index" gives you the instance number, which you could use, for example inside a switch case.
switch(index){
case '1':
$(this).after('<span style="color:red">i am number 1</span>');
break;
case '2':
$(this).after('<span style="color:red">i am number 2</span>');
break;
default:
$(this).after('<span style="color:red">i am number '+index+'</span>');
break;
}
});
或者您可以通过.eq(index)访问特定的一个:
$('script').eq(2).after('hello world');
// this is for the third script tag, starting from the top of the document.
答案 3 :(得分:0)
我不知道使用jQuery的解决方案,但你可以很容易地在大多数浏览器中找到当前插入位置的DOM节点: