我如何执行标题中描述的选择?我认为应该相当安全地假设此类链接末尾没有诸如 .asdafasdfsaf
、.html
或 .zip
之类的内容他们的目标,所以我尝试了以下方法:
var links = jQuery("a:not([href$='.*'])") // Period as is
var links = jQuery("a:not([href$='\.*'])") // One escape
var links = jQuery("a:not([href$='\\.*'])") // Two escapes
但是,这些似乎都没有真正阻止选择不需要的链接。如何解决这个问题?
编辑:
使用正则表达式的尝试没有成功:
function has_suffix (target_string) {
regex = RegExp("(\/.*\..*)$");
if ( regex.test(target_string) ) {
return true;
} else {
return false;
}
var links = jQuery("a").filter(
function () {
target = $(this).attr("href")
console.log(target)
return $(true,this) === has_suffix(target);
});
在控制台中测试 RegExp 似乎确实产生了我想要的结果,但实际上在过滤器中使用 has_suffix
函数让我很头痛。 filter
的文档对我来说没有用;例子中还不够清楚。
最佳答案
您可以直接返回 has_suffix()
的结果,因为过滤器函数已经为每个匹配的元素运行一次:
var links = jQuery("a").filter(
function () {
target = $(this).attr("href")
console.log(target)
return has_suffix(target);
});
关于javascript - 使用 jQuery 选择目标没有后缀的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295168/