Javascript 使用其值jQuery更改超链接的href
当我想到是否要通过将锚与特定的现有href匹配来更改锚标记href时,我编写了以下代码:Javascript 使用其值jQuery更改超链接的href,javascript,jquery,Javascript,Jquery,当我想到是否要通过将锚与特定的现有href匹配来更改锚标记href时,我编写了以下代码: <a href="Accept.php">Accept</a> <script src="http://code.jquery.com/jquery-3.2.1.js"></script> <script> $("a[href='Accept.php']").attr('href', 'http://www.accept.com'); </s
<a href="Accept.php">Accept</a>
<script src="http://code.jquery.com/jquery-3.2.1.js"></script>
<script>
$("a[href='Accept.php']").attr('href', 'http://www.accept.com');
</script>
请检查这个。它正在工作
$(文档).ready(函数(){
$(“a:contains('Accept'))。attr('href','http://www.accept.com');
});代码>
$(“a”).filter(函数(){
return$(this.text()='Accept';
}).attr('href','http://www.accept.com');代码>
如果您的a
元素没有text
属性(它们不应该有,这是无效的HTML),a[text='…']
将无法工作
如果您试图将其href
设置为其内容,则可以使用,但请注意,它与元素中的任何位置都匹配:
$("a:contains('Accept')").attr("href", function() {
return $(this).text();
});
请注意,这使用了attr
的版本,因此它使用每个a
的特定文本作为属性
您的内容需要是有效的相对或绝对URL,例如Accept.php
。或类似情况。以下是示例代码:
HTML:
可以使用包含选择器获取链接对象。提及
据我所知,jQuery不允许根据元素内部文本的内容选择元素。您需要过滤结果或使用不同的方法
首先,让我们看看过滤选项。您需要选择所有锚定标记,然后使用filter()
函数按其内容对其进行过滤:
$("a")
.filter(function(idx, el) {
return $(el).text() === "Accept";
})
.attr("href", "http://www.accept.com");
然而,这显然是一个相当缓慢的选择,在非常大的页面上,它可能会导致可感知的延迟。在将其投入生产之前,确保不会给您带来麻烦
另一种方法,也是推荐的方法,是使用一个类或id。正如您所知,jQuery和vanilla JS都能够通过它们的id或类来选择元素。我建议您尝试找出是否可以将id/类应用于链接,并选择该id/类。使用过滤方法作为最后的解决方案。锚定标记上没有文本属性。因此,如果a
元素没有text
属性(它们不应该有,这是无效的HTML),则不能执行$([text='Accept'])
,a[text='…]
不起作用。了解所需版本的HTML外观会有很大帮助。将新文本设置为锚定并放置属性值与选择具有特定属性的锚定不同text@guradio是的,你是对的。但是他想用这个值来改变锚定标签,这就是为什么我更喜欢用一种简单的方式来做这件事。兄弟,请做一些小的改变。它正在改变所有锚定标签以接受和使用相同的href。我只想改变有值的href,不接受任何其他内容。如果有多个a
元素,那么,在这种情况下,我们可以更改代码。为每个标记分配class和custom属性,并在此基础上调整JQuery代码。目前的解决方案是根据问题中提到的代码给出的。兄弟,非常感谢。在所有答案中。您的ans非常完美。@DoeChalie很高兴帮助mate happy编写代码。您还可以告诉我如何用php实现它吗?假设我有一个包含一些html页面代码的变量,我想从中筛选。
<a href="Accept.php">Accept</a>
if($("a").text() == 'Accept') {
$("a").attr('href', 'http://www.accept.com');
}
$("a:contains('Accept')).attr('href', 'http://www.accept.com');
$("a")
.filter(function(idx, el) {
return $(el).text() === "Accept";
})
.attr("href", "http://www.accept.com");