使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url

Append programmatically current anchor/hash/fragment to any form action url with Javascript/jQuery

本文关键字:片段 哈希 任何 url 操作 表单 jQuery Javascript 编程 方式 使用      更新时间:2023-09-26

我有一个JSP和一些外部API自定义taglibs,它们使用hash处理URL(我知道服务器端本身不处理它们)。

我正在尝试类似的东西

$(document).ready(function(){
    $('form').prop('action').append(window.locator.anchor)
});

但我做错了,我不确定这是否是最好的方式。你能帮我吗?

没有理由这样做,因为哈希从未发送到服务器。但以下是如何做到这一点:

$('form').prop('action', function(i, val) {
    return val + window.location.hash;
});

有几件事在你的代码中是不正确的:

  • .prop(name)[docs]返回该属性的值,该属性通常是字符串。

  • .append[docs]是一种将DOM元素附加到另一个元素的jQuery方法。它不是字符串方法,不能用于连接字符串。

  • window.locator.anchor不存在。window.location[MDN]保存关于当前URL的信息,并且它具有引用URL的片段标识符的属性hash

我建议您看一下jQuery文档。每种方法都有示例。您还必须学习一些elementare JavaScript才能执行简单的操作,例如字符串连接。