【发布时间】:2017-08-11 23:03:47
【问题描述】:
我正在开发一个老式的应用程序。它太旧了,不支持jquery。在大多数情况下这很好,但我遇到了一个让我很烦的地方。
我需要选择一个包含“Novedades”一词的链接,这样我就可以更改 http 属性。希望我能以不同的方式做到这一点,但他们有一个 CMS 正在改变我每一次转向的一切。 :) 你能说我喜欢这个系统吗?
通常,这就是我在 Jquery 中编写它的方式。很简单,但我怎样才能把 find 变成普通的 javascript?
var blog = $('.navbar-nav').find('a:contains(Novedades)');
所以很明显这将从
开始var blog = document.getElementsByClassName("navbar-nav")
任何帮助将不胜感激! :)
【问题讨论】:
-
基于文本内容的选择并不如意。但是,如果没有其他方法,我只需使用
document.querySelectorAll()和单个选择器来获取'.navbar-nav a'元素,然后通过测试每个元素的.textContent来过滤它们。 -
@squint 是的,我也不喜欢选择文本,但这是一个糟糕的系统。不太确定我知道你要去哪里。像 document.querySelectorAll('navbar-nav a').textContent('Novedades') 之类的东西?
-
差不多。
querySelectorAll方法返回一个集合。听起来您只需要执行一个操作,因此最简单、最广泛兼容的方法是使用for循环来迭代集合,检查每个单独元素的.textContent属性,然后更改 @ 987654329@ 在循环中。 -
@zazvorniki 您应该手动创建一个函数,该函数循环遍历
<a>标签并检查其内容。就像我之前发布的链接一样。这是一种方法 -
如果您只支持现代浏览器,或者可以转译代码,则可以使用更好的语法。
标签: javascript jquery