将动态文本添加到锚 link URL 查询
Add dynamic text to anchor link URL query
我有一组由另一个系统生成的锚。
锚点是切换锚点,true/false 开关也是。
我需要向其中添加用户输入的自定义文本。我想我可以使用 JQuery 来构建它,但系统根本没有按预期响应和更新。
我到处搜索,似乎找不到类似的问题;除了 。但那是表格表格,这应该是锚点。
例如:
目前:
<table id='custRefTable'>
<tr>
<td class="passed" title='Sunday, January 5, 2020 (date has passed)'><a href='toggle.php?date=2020-01-05'>05</td>
<td class="passed" title='Monday, January 6, 2020 (date has passed)'><a href='toggle.php?date=2020-01-06'>06</td>
<td class="passed" title='Tuesday, January 7, 2020 (date has passed)'><a href='toggle.php?date=2020-01-07'>07</td>
<td class="passed" title='Wednesday, January 8, 2020 (date has passed)'><a href='toggle.php?date=2020-01-08'>08</td>
<td class="passed" title='Thursday, January 9, 2020 (date has passed)'><a href='toggle.php?date=2020-01-09'>09</td>
<td class="passed" title='Friday, January 10, 2020 (date has passed)'><a href='toggle.php?date=2020-01-10'>10</td>
<td class="passed" title='Saturday, January 11, 2020 (date has passed)'><a href='toggle.php?date=2020-01-11'>11</td>
</tr>
</table>
有了这个 HTML 我想添加一个输入:
<div>
<p>Reference will be saved with each new booking made on this page.</p>
<label for='customerRef'>Customer Reference:</label>
<input type='text' name='customerRef' maxlength='150' id='customerRef' value='' placeholder='Reference details'>
<input type='button' id='cset' value='Set'>
</div>
还有我现在的 JS:
$( document ).ready(function() {
$("#cset").click(function () {
var lister = $("#custRefTable").find("a");
var customerData = $("#customerRef").value;
customerData = encodeURIComponent(customerData);
$(lister).each(function () {
$(this).href = $(this).href + "&custNote=" + customerData;
});
});
});
我没有收到任何控制台错误,但锚点也没有更新;参考 ID cset
.
本意是:
用户输入文字;按下按钮输入,文本值被转换为 URL 安全,并附加到上面 table 中的每个锚点。
所以例如在文本机器人中我写 "great trees" 然后按 "Set";然后单击 table 中的任何锚点;它去:
toggle.php?date=2020-01-10&custNote=great%20trees
我错过了什么或做错了什么?!
据我所知,href
不是 setter 方法,而只是 getter。您可以在 jQuery 中使用 attr 这样做:
$(this).attr('href', $(this).attr('href') + "&custNote=" + customerData);
或者简单地省略 jquery 包装器并使用 setAttribute
this.setAttribute(this.href, this.href + "&custNote=" + customerData);
How would I prevent my code from adding multiple &custNote= values? If I click "Set" twice the value is added twice:
toggle.php?date=2020-01-22&custNote=Horses and cheese&custNote=fielding
为此,您可以 split
符号上的 href 值,获取这个新形成的数组的第一个索引,然后像以前一样追加其余部分:
$(this).attr('href', $(this).attr('href').split('&')[0] + "&custNote=" + customerData);
我有一组由另一个系统生成的锚。
锚点是切换锚点,true/false 开关也是。
我需要向其中添加用户输入的自定义文本。我想我可以使用 JQuery 来构建它,但系统根本没有按预期响应和更新。
我到处搜索,似乎找不到类似的问题;除了
例如:
目前:
<table id='custRefTable'>
<tr>
<td class="passed" title='Sunday, January 5, 2020 (date has passed)'><a href='toggle.php?date=2020-01-05'>05</td>
<td class="passed" title='Monday, January 6, 2020 (date has passed)'><a href='toggle.php?date=2020-01-06'>06</td>
<td class="passed" title='Tuesday, January 7, 2020 (date has passed)'><a href='toggle.php?date=2020-01-07'>07</td>
<td class="passed" title='Wednesday, January 8, 2020 (date has passed)'><a href='toggle.php?date=2020-01-08'>08</td>
<td class="passed" title='Thursday, January 9, 2020 (date has passed)'><a href='toggle.php?date=2020-01-09'>09</td>
<td class="passed" title='Friday, January 10, 2020 (date has passed)'><a href='toggle.php?date=2020-01-10'>10</td>
<td class="passed" title='Saturday, January 11, 2020 (date has passed)'><a href='toggle.php?date=2020-01-11'>11</td>
</tr>
</table>
有了这个 HTML 我想添加一个输入:
<div>
<p>Reference will be saved with each new booking made on this page.</p>
<label for='customerRef'>Customer Reference:</label>
<input type='text' name='customerRef' maxlength='150' id='customerRef' value='' placeholder='Reference details'>
<input type='button' id='cset' value='Set'>
</div>
还有我现在的 JS:
$( document ).ready(function() {
$("#cset").click(function () {
var lister = $("#custRefTable").find("a");
var customerData = $("#customerRef").value;
customerData = encodeURIComponent(customerData);
$(lister).each(function () {
$(this).href = $(this).href + "&custNote=" + customerData;
});
});
});
我没有收到任何控制台错误,但锚点也没有更新;参考 ID cset
.
本意是:
用户输入文字;按下按钮输入,文本值被转换为 URL 安全,并附加到上面 table 中的每个锚点。
所以例如在文本机器人中我写 "great trees" 然后按 "Set";然后单击 table 中的任何锚点;它去:
toggle.php?date=2020-01-10&custNote=great%20trees
我错过了什么或做错了什么?!
据我所知,href
不是 setter 方法,而只是 getter。您可以在 jQuery 中使用 attr 这样做:
$(this).attr('href', $(this).attr('href') + "&custNote=" + customerData);
或者简单地省略 jquery 包装器并使用 setAttribute
this.setAttribute(this.href, this.href + "&custNote=" + customerData);
How would I prevent my code from adding multiple &custNote= values? If I click "Set" twice the value is added twice:
toggle.php?date=2020-01-22&custNote=Horses and cheese&custNote=fielding
为此,您可以 split
符号上的 href 值,获取这个新形成的数组的第一个索引,然后像以前一样追加其余部分:
$(this).attr('href', $(this).attr('href').split('&')[0] + "&custNote=" + customerData);