使用 jquery 解析 url 查询字符串并将值插入文本框中? [英] Parsing the url querystring using jquery and inserting the value in a textbox?
问题描述
post.php?replyto=username&othervariable=value
例如,如果我单击带有此 url 的链接,那么我想获取 replyto=username
值并使用 jquery 将该值插入到文本框中.
For example, if I click a link with this url, then I want to take the replyto=username
value and insert the value in a textbox using jquery.
function insertParamIntoField(url, param, field) {
var anchor = document.createElement('a'), query;
anchor.value = url;
query = anchor.query.split('&');
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a .reply").click(function () {
insertParamIntoField(this.href, "replyto", $("input .inputField")[0]);
return false; // prevent default action
});
这是我的 html 代码:
this is my html code:
<textarea name="inputField" id="inputField" tabindex="1" rows="2" cols="40"></textarea>
<a class ="reply" href="home.php?replyto=username">reply</a>
推荐答案
function insertParamIntoField(url, param, field) {
var anchor = document.createElement('a'), query;
anchor.href = url;
query = anchor.search.substring(1, anchor.search.length).split('&');
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2); console.log(kv);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a.reply").click(function () {
insertParamIntoField(this.href, "replyto", $("textarea.inputField")[0]);
return false; // prevent default action
});
insertParamIntoField
函数适用于任何格式正确的 URL(作为字符串).它的工作原理是为该 URL 创建一个新的锚点 DOMElement(但从不将其附加到 dom),然后使用锚点元素的内置属性(查询、哈希等)来提取我们想要的内容.
The insertParamIntoField
function will work for any well formed URL (as a string). It works by creating a new anchor DOMElement (but never attaches it to the dom) for that URL and then by using the built in properties of anchor elements (query, hash, etc.) to extract what we want.
如果 URL 来自锚点元素,我们可以创建此函数的新版本,使用现有锚点而不是创建新锚点:
If the URL is from an anchor element, we can create a new version of this function that uses that existing anchor rather than creating a new one:
function insertParamIntoField(anchor, param, field) {
var query = anchor.search.substring(1, anchor.search.length).split('&'); // anchor is a DOMElement
for(var i = 0, kv; i < query.length; i++) {
kv = query[i].split('=', 2);
if (kv[0] == param) {
field.value = kv[1];
return;
}
}
}
$("a.reply").click(function () {
insertParamIntoField(this, "replyto", $("textarea.inputField")[0]);
return false; // prevent default action
});
这篇关于使用 jquery 解析 url 查询字符串并将值插入文本框中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!