使锚文本成为href的一部分
Make anchortext part of href?
我有一个链接,看起来像这样:
<a class="link" href="https://www.google.com/?q=">Hello world</a>
是否可以将此渲染为Hello World?
链接应该指向https://www.google.com/?q=Hello world,而不是在href中指定。
我认为javascript可能是这样做的最好的方式?
任何帮助都会很好!
假设您的href
始终是https://www.google.com/?q=
格式,您可以:
var eles = document.getElementsByTagName('a');
for(var i = 0, len = eles.length; i < len; i++) {
//get the inner html of anchor tag
//var text = eles[i].innerHTML;
//better use textContent
var text = eles[i].textContent;
//append anchor tag inner html to href
eles[i].href += text;
}
你可以试试这个吗,
<a class="link" href="https://www.google.com/?q=" onclick='window.location.href = this.href+encodeURI(this.textContent); return false; '>Hello world</a>
增加onclick
事件处理程序,获得标签的href
和textContent
并将它们组合在一起。然后它将给出预期的结果。
更新:如果你的页面中有很多链接,那么你可以创建javascript函数并在必要时调用它。
Javascript: function Search(d){
window.location.href = d.href+encodeURI(d.textContent);
return false;
}
HTML: <a class="link" href="https://www.google.com/?q=" onclick='Search(this);'>Hello world</a>
即使您想集成jquery,这个过程也可能变得更简单。
text = $(".link").html();
link = $(".link").attr('href');
$(".link").attr('href',link+text);
这可以帮助你
Javascriptfunction changeHref () {
var anchor = document.getElementsByTagName('a')[0];
anchor.href += anchor.textContent;
}
HTML <a class="link" onclick="changeHref()" href="https://www.google.com/?q=">Hello world</a>
你可以利用javascript的onclick事件:
<a class="link" href="#" onclick="navigateToLink(this)">Hello world</a>
在javascript中,你可以这样处理:
function navigateToLink(elt){
console.log("https://www.google.com/?q="+elt.textContent );
window.location.href="https://www.google.com/?q="+ elt.textContent;
}
工作小提琴可能是这样的:
$('.link').click(function(){
$(this).attr('href', this.href + encodeURIComponent($(this).text()));
});
小提琴
这将在提交链接之前更改href属性
答案很多,所以再多一个也无妨。假设您无法控制服务器,否则您只需修改那里的href并完成它。一个简单的方法是:
<a href="..." onclick="this.href+=this.textContent||this.innerText">...</a>
使用textContent或innerText意味着你可以在链接的内容中有标记,而它不会成为href的一部分。
一个更通用的解决方案,只修改链接与"google.com"在href:
function modifyLinks() {
var link, links = document.links;
var re = /google'.com/i;
for (var i=0, iLen=links.length; i<iLen; i++) {
link = links[i];
if (re.test(link.href)) {
link.href += link.textContent || link.innerText;
}
}
}
window.onload = modifyLinks;
测试可以更改为任何东西,也许您想基于className或其他属性。如果您想修改所有链接,只需删除test.
试试这个
$(document).ready(function(){
$('.link').on('click', function(){
var temp = $(this).attr('href');
var html = $(this).html();
$(this).attr('href',temp+html);
});
});
DEMO: http://jsbin.com/rudobe/edit?html,js,output
HTML:<a class="link" href="https://www.google.com/?q=">Hello world</a>
JS:
var anchor = document.getElementsByClassName('link')[0];
var href = anchor.getAttribute('href');
var text = anchor.textContent;
anchor.setAttribute('href', href + text); // The `+` operator concatenates here.
文档:http://devdocs.io/dom/element.setattribute
http://devdocs.io/dom/element.getattribute http://devdocs.io/dom/node.textcontent http://devdocs.io/dom/document.getelementsbyclassname- 在单击href链接的同时下载文件
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如果href包含X,请更改href
- 锚点元素的href属性自动更改
- 锚点元素不't使用svg时,请打开EDGE上的href
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 如何检查字符串的一部分与数组匹配
- 为什么可以't我使用了AJAX响应的一部分
- Href:当前DIV中的目标ID
- href属性内的javascript函数
- ng绑定和ng href问题.ng href未从控制器加载数据
- href没有在每次单击li的一部分时加载链接.使用javascript使整个li可以点击
- 使用 jquery 替换 href 的一部分
- 如何在java中使用Selenium获取href链接的一部分
- 将javascript变量与href的一部分进行比较
- 使锚文本成为href的一部分
- 更改href值的一部分
- 如何用javascript改变HTML href元素的一部分
- 改变悬停jquery的一部分Href