JQuery 根据锚标签的文本制作超链接
JQuery make hyperlink based on Text of Anchor tag
我有以下内容 table & 根据它的文本制作 table <td>
clickable/hyperlink 的单元格的最佳方法是什么。
<table id="fresh-table" class="table">
<thead>
<th data-field="id" data-sortable="true">ID</th>
<th data-field="URL" data-sortable="true">URL</th>
<th data-field="Results">Results</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td><a href="#">https://google.com</td>
<td>Woot</td>
</tr>
<tr>
<td>1</td>
<td><a href="#">https://facebook.com</td>
<td>Hax</td>
</tr>
</tbody>
</table>
$(document).ready(function(){
var x = $('.clickme').getText();
console.log(x);
});
我想根据它得到的文本替换 href
的值,例如:
https://google.com
或 https://facebook.com
.
首先请注意,您的HTML是无效的;您缺少 </a>
标签来关闭 table
.
中的锚点
其次,jQuery没有getText()
方法。我假设您打算改用 text()
。
关于您的问题,您可以使用prop()
将a
元素的href
属性设置为等于它们的text()
。最简单的方法是为 prop()
提供一个函数,该函数将在集合中的每个元素上执行。试试这个:
$('#fresh-table a').prop('href', function() {
return $(this).text();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="fresh-table" class="table">
<thead>
<th data-field="id" data-sortable="true">ID</th>
<th data-field="URL" data-sortable="true">URL</th>
<th data-field="Results">Results</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td><a href="#">https://google.com</a></td>
<td>Woot</td>
</tr>
<tr>
<td>1</td>
<td><a href="#">https://facebook.com</a></td>
<td>Hax</td>
</tr>
</tbody>
</table>
无需 jQuery
只需几行代码即可实现:
document.addEventListener("DOMContentLoaded", () => {
for (const element of document.querySelectorAll("a[href='#']")) {
element.href = element.innerText;
}
});
我有以下内容 table & 根据它的文本制作 table <td>
clickable/hyperlink 的单元格的最佳方法是什么。
<table id="fresh-table" class="table">
<thead>
<th data-field="id" data-sortable="true">ID</th>
<th data-field="URL" data-sortable="true">URL</th>
<th data-field="Results">Results</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td><a href="#">https://google.com</td>
<td>Woot</td>
</tr>
<tr>
<td>1</td>
<td><a href="#">https://facebook.com</td>
<td>Hax</td>
</tr>
</tbody>
</table>
$(document).ready(function(){
var x = $('.clickme').getText();
console.log(x);
});
我想根据它得到的文本替换 href
的值,例如:
https://google.com
或 https://facebook.com
.
首先请注意,您的HTML是无效的;您缺少 </a>
标签来关闭 table
.
其次,jQuery没有getText()
方法。我假设您打算改用 text()
。
关于您的问题,您可以使用prop()
将a
元素的href
属性设置为等于它们的text()
。最简单的方法是为 prop()
提供一个函数,该函数将在集合中的每个元素上执行。试试这个:
$('#fresh-table a').prop('href', function() {
return $(this).text();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="fresh-table" class="table">
<thead>
<th data-field="id" data-sortable="true">ID</th>
<th data-field="URL" data-sortable="true">URL</th>
<th data-field="Results">Results</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td><a href="#">https://google.com</a></td>
<td>Woot</td>
</tr>
<tr>
<td>1</td>
<td><a href="#">https://facebook.com</a></td>
<td>Hax</td>
</tr>
</tbody>
</table>
无需 jQuery
只需几行代码即可实现:
document.addEventListener("DOMContentLoaded", () => {
for (const element of document.querySelectorAll("a[href='#']")) {
element.href = element.innerText;
}
});