Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “a[href^=“/”]”是什么意思?_Javascript_Backbone.js - Fatal编程技术网

Javascript “a[href^=“/”]”是什么意思?

Javascript “a[href^=“/”]”是什么意思?,javascript,backbone.js,Javascript,Backbone.js,在下面的代码中,[href^=/]是正则表达式吗 为什么它有^symbol?它是做什么的 它会/不会响应哪些单击事件 $(document).on('click', 'a[href^="/"]', function(e) { e.preventDefault(); var href = $(e.currentTarget).attr('href'); console.log('click ' + href); Backbone.history.na

在下面的代码中,[href^=/]是正则表达式吗

为什么它有^symbol?它是做什么的

它会/不会响应哪些单击事件

$(document).on('click', 'a[href^="/"]', function(e) { 
     e.preventDefault(); 
     var href = $(e.currentTarget).attr('href'); 
     console.log('click ' + href); 
     Backbone.history.navigate(href, { trigger: true }); 
}); 
在下面的代码中,[href^=/]是正则表达式吗

不,它不是正则表达式。它是基于CSS的

问:为什么它有“^”符号?它是做什么的

它有这个符号,因为它的意思是startsWith

问:它会/不会响应哪些点击事件

$(document).on('click', 'a[href^="/"]', function(e) { 
     e.preventDefault(); 
     var href = $(e.currentTarget).attr('href'); 
     console.log('click ' + href); 
     Backbone.history.navigate(href, { trigger: true }); 
}); 
R.它将响应任何具有以/开头的href属性的a标记


注意:主干代码可能正在使用该选择器获取网站的所有内部链接并更改其行为以进行客户端导航,而外部链接将以http/https开头。

符号表示事件将执行以/

开头的任何链接[href^=/]是一个选择器:

选择器是与树中的元素相匹配的模式,因此构成了可用于选择XML文档中节点的几种技术之一。选择器已针对HTML和XML进行了优化,设计为可用于性能关键型代码

^symbol与regex^anchor有点类似,尽管它不是一个真正的正则表达式。它被用作特定的属性选择器:

6.3.2。子字符串匹配属性选择器

为匹配属性值中的子字符串,提供了三个附加属性选择器:

[附件^=val]

表示具有att属性的元素,其值以前缀val开头。如果val是空字符串,则选择器不表示任何内容

[附件$=val]

表示具有att属性的元素,其值以后缀val结尾。如果val是空字符串,则选择器不表示任何内容

[附件*=val]

表示具有att属性的元素,其值至少包含子字符串val的一个实例。如果val是空字符串,则选择器不表示任何内容

这些是元素属性的选择器href是一个属性


W3C规范:

有相似之处,但问题根本不一样。问题本质上是一样的,^=是什么意思?我不一定称它为CSS选择器,因为它不在CSS上下文中使用,尽管我同意语法来源于CSS。@你是对的,事实上它是一个jQuery选择器,基于CSS选择器。更新了我的答案。除了OP的详细答案外,关于内部/外部链接差异的观点很好