您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月19日 12:40

原创 jQuery 选择器(:target)详解

5187 次浏览 读完需要≈ 4 分钟

内容目录

jQuery的:target选择器用于匹配id属性值等于当前文档URI的锚点名称的元素,将其封装为jQuery对象并返回。

如果当前文档的URI为https://codeplayer.vip/#top,则:target选择器匹配id="top"的元素。

语法

jQuery1.9 新增该选择器。

jQuery( ":target" )

返回值

返回封装了id为当前文档URI的锚点名称的元素的jQuery对象。

注意:target选择器最好在$(window).load(callback)的函数参数callback中使用,否则在FireFox、Chrome等浏览器中可能会出现无法匹配到指定元素的问题(例如下面HTML示例代码中的n2)。

示例&说明

以下面这段HTML代码为例:

<div id="n1">
	<p id="n2">
		<span id="n3" class="abc">span2</span>
		<span id="n4">span3</span>
	</p>
</div>

假设当前文档的URI为http://localhost/demo.html#n2,则$(":target")所匹配的元素如以下jQuery代码所示:

// 选择了id为n2的<p>元素
var $target = $(":target");
if( $target.length == 1){ // 如果匹配到了元素
	var ele = $target[0]; // 获取JS原生DOM元素
	alert( ele.tagName + "#" + ele.id ); // P#n2	
}

上述jQuery代码在FireFox、Chrome等浏览器中可能无法获取到匹配的元素,你可以将:target选择器放在window.onload事件中处理:

// 在Chrome中,使用$(document).ready()仍然无法获取到匹配的元素
// 必须使用$(window).load()来获取
$(window).load(function(){
	var $target = $(":target");
	if( $target.length == 1){ // 如果匹配到了元素
		var ele = $target[0]; // 获取JS原生DOM元素
		alert( ele.tagName + "#" + ele.id ); // P#n2	
	}	
});
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单