javascript - 使用 jQuery 选择目标没有后缀的所有链接

标签 javascript jquery jquery-selectors

我如何执行标题中描述的选择?我认为应该相当安全地假设此类链接末尾没有诸如 .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/

相关文章:

javascript - Redux 表单验证在 onChange 处理函数之后运行

javascript - 使用函数中的参数调用 JavaScript 函数

javascript - 这两种使用 jQuery 附加 DOM 元素的方法有何不同?

jquery - 如何禁用基于其他选定选项的选择?

jquery-selectors - 可以使用jQuery根据其高度选择div吗?还是本教程错了?

javascript - 为什么 jQuery 类选择器只返回一个元素?

javascript - Websockets ws - Node 和 Express - 导出 API

javascript - 第一次正确获取数据,当用户移动到彼此聊天时,状态值没有刷新,显示过去+当前用户聊天

javascript - 在 knockout 中重新映射后,自定义属性未绑定(bind)

javascript - jQuery .not() 排除某些类的父类