js 如何添加href + text onclick
js How to add href + text onclick
我需要将 span 内的文本传递(使用 javascript)到 href
<div class='tableCell'><span>information</span></div>
<div class='tableCell'><span>contact</span></div>
<div class='tableCell'><span>about</span></div>
例如当我点击到大约 link 必须是例子。com/tag/about/
$(".tableCell span").click(function() {
var link = $(this).text(), // will provide "about"
href = "http://example.com/tag/"+link; // append to source url
window.location.href=href; // navigate to the page
});
你可以试试上面的代码
您没有 link,但跨度在您的 html 中。但是,您可以构建所需的 href
并将其分配给现有的 link:
$('div.tableCell').click(function(){
var href = 'example.com/tag/' + $(this).find('span').text();
})
你的方法
如果您总是想 url 从某件事开始,您可以这样做。它的设置方式是...
prefix
+ SPANS 文本 + suffix
THE SPANS TEXT 中的空格将被转换为 -
var prefix = 'http://example.com/tag/',
suffix = '/';
$('span').click(function () {
window.location.href = prefix + $(this).text().replace(' ', '-').trim().toLowerCase() + suffix;
//An example is: "http://example.com/tag/about-us/"
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='tableCell'><span>Information</span></div>
<div class='tableCell'><span>Contact</span></div>
<div class='tableCell'><span>About</span></div>
您可以轻松调整它,因此如果您希望它以 .html
而不是 /
结尾,您可以更改后缀。此方法还允许您使跨度具有大写的单词和空格。
JSBIN
最简单的方法:
$( "span" ).click(function() {
var link = 'http://yousite.com/tag/'+ $(this).text().replace(/ /, "-")+"/";
window.location.href= link.toLowerCase();
});
演示
让我们使用 pure javascript,我知道你想使用 jQuery,但我敢肯定,如果不使用 pure [=35= 浏览网络,很多人都无法做到这一点].所以这里有一个好方法。
您可以从jsFiddle
关注它
var objectList = document.getElementsByClassName("tableCell");
for(var x = 0; x < objectList.length; x++){
objectList[x].addEventListener('click', function(){
top.location.href = "example.com/tag/" + this.childNodes[0].innerHTML;
});
}
让我们研究代码,
var objectList = document.getElementsByClassName("tableCell");
现在我们有了 class tableCell
的所有元素。在很多情况下,这比 $(".tableCell")
更好。
- 现在
objectList[x].addEventListener('click', function(){});
使用此方法我们向每个对象添加了事件。
top.location.href = "example.com/tag/" + this.childNodes[0].innerHTML;
如果有人点击我们的带有 class 的元素:我们将把 link 更改为他的第一个子节点的文本。
希望对你有用,想提升自己的就尽量用纯js吧
这是我的答案。我正在使用 Javascript 来操纵 DOM 来添加一个新元素,其 href 等于 span 元素中的内部文本。
希望此回答对您有所帮助。
谢谢
var spans = document.getElementsByTagName('span')
var baseUrl = 'http://example.com/tag/'
for(var i=0; i<spans.length; i++)
{
var curElement = spans[i];
var parent = curElement.parentElement;
var newAElement = document.createElement('a');
var path = baseUrl+curElement.innerHTML;
newAElement.setAttribute('href', path);
newAElement.appendChild(curElement);
parent.appendChild(newAElement)
}
我需要将 span 内的文本传递(使用 javascript)到 href
<div class='tableCell'><span>information</span></div>
<div class='tableCell'><span>contact</span></div>
<div class='tableCell'><span>about</span></div>
例如当我点击到大约 link 必须是例子。com/tag/about/
$(".tableCell span").click(function() {
var link = $(this).text(), // will provide "about"
href = "http://example.com/tag/"+link; // append to source url
window.location.href=href; // navigate to the page
});
你可以试试上面的代码
您没有 link,但跨度在您的 html 中。但是,您可以构建所需的 href
并将其分配给现有的 link:
$('div.tableCell').click(function(){
var href = 'example.com/tag/' + $(this).find('span').text();
})
你的方法
如果您总是想 url 从某件事开始,您可以这样做。它的设置方式是...
prefix
+ SPANS 文本 + suffix
THE SPANS TEXT 中的空格将被转换为 -
var prefix = 'http://example.com/tag/',
suffix = '/';
$('span').click(function () {
window.location.href = prefix + $(this).text().replace(' ', '-').trim().toLowerCase() + suffix;
//An example is: "http://example.com/tag/about-us/"
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='tableCell'><span>Information</span></div>
<div class='tableCell'><span>Contact</span></div>
<div class='tableCell'><span>About</span></div>
您可以轻松调整它,因此如果您希望它以 .html
而不是 /
结尾,您可以更改后缀。此方法还允许您使跨度具有大写的单词和空格。
JSBIN
最简单的方法:
$( "span" ).click(function() {
var link = 'http://yousite.com/tag/'+ $(this).text().replace(/ /, "-")+"/";
window.location.href= link.toLowerCase();
});
演示
让我们使用 pure javascript,我知道你想使用 jQuery,但我敢肯定,如果不使用 pure [=35= 浏览网络,很多人都无法做到这一点].所以这里有一个好方法。
您可以从jsFiddle
关注它var objectList = document.getElementsByClassName("tableCell");
for(var x = 0; x < objectList.length; x++){
objectList[x].addEventListener('click', function(){
top.location.href = "example.com/tag/" + this.childNodes[0].innerHTML;
});
}
让我们研究代码,
var objectList = document.getElementsByClassName("tableCell");
现在我们有了 classtableCell
的所有元素。在很多情况下,这比$(".tableCell")
更好。- 现在
objectList[x].addEventListener('click', function(){});
使用此方法我们向每个对象添加了事件。 top.location.href = "example.com/tag/" + this.childNodes[0].innerHTML;
如果有人点击我们的带有 class 的元素:我们将把 link 更改为他的第一个子节点的文本。
希望对你有用,想提升自己的就尽量用纯js吧
这是我的答案。我正在使用 Javascript 来操纵 DOM 来添加一个新元素,其 href 等于 span 元素中的内部文本。
希望此回答对您有所帮助。 谢谢
var spans = document.getElementsByTagName('span')
var baseUrl = 'http://example.com/tag/'
for(var i=0; i<spans.length; i++)
{
var curElement = spans[i];
var parent = curElement.parentElement;
var newAElement = document.createElement('a');
var path = baseUrl+curElement.innerHTML;
newAElement.setAttribute('href', path);
newAElement.appendChild(curElement);
parent.appendChild(newAElement)
}