将Jquery转换为javascript(find())
我正在开发一个老式的学校应用程序。它太旧了,不支持jquery。这在大多数情况下都很好,但我遇到了一个让我非常恼火的地方 我需要选择一个包含单词“Novedades”的链接,这样我就可以更改http属性。我希望我能用不同的方式来做这件事,但他们有一个CMS,我每转一圈都在改变一切你能告诉我我喜欢这个系统吗 通常,这是我在Jquery中编写它的方式。很简单,但如何将查找结果转换为普通javascript将Jquery转换为javascript(find()),javascript,jquery,Javascript,Jquery,我正在开发一个老式的学校应用程序。它太旧了,不支持jquery。这在大多数情况下都很好,但我遇到了一个让我非常恼火的地方 我需要选择一个包含单词“Novedades”的链接,这样我就可以更改http属性。我希望我能用不同的方式来做这件事,但他们有一个CMS,我每转一圈都在改变一切你能告诉我我喜欢这个系统吗 通常,这是我在Jquery中编写它的方式。很简单,但如何将查找结果转换为普通javascript var blog = $('.navbar-nav').find('a:contains(No
var blog = $('.navbar-nav').find('a:contains(Novedades)');
所以很明显,这将从
var blog = document.getElementsByClassName("navbar-nav")
任何帮助都将不胜感激!:) 在斜视评论的基础上,你将不得不老调重弹:
var blog = document.querySelectorAll(".navbar-nav a");
for (var i=0;i<blog.length;i++){
var thisBlog = blog[i];
var txt = thisBlog.textContent.toLowerCase();
if (txt.indexOf('novedades') > -1){
//do your thing
}
}
var blog=document.querySelectorAll(“.navbar nav a”);
对于(变量i=0;i-1){
//做你的事
}
}
基于文本内容的选择少于idea。但是,如果没有其他方法,我只会使用带有单个选择器的document.querySelectorAll()
来获取'.navbar nav a'
元素,然后通过测试每个元素的.textContent
来过滤它们。@眯着眼睛看是的,我也不喜欢选择文本,但这是一个糟糕的系统。不过我不太确定你要去哪里。类似document.querySelectorAll('navbar-nava')。textContent('Novedades')?几乎可以。querySelectorAll
方法返回一个集合。听起来您只需要执行一个操作,因此最简单、最广泛兼容的方法是使用for
循环来迭代集合,检查每个元素的.textContent
属性,然后更改循环中的href
。@zazvorniki您应该手动创建一个函数,通过
标记循环并检查其内容。就像我之前发布的链接一样。这是一种方法,如果你只支持现代浏览器,或者可以传输代码,有更好的语法可用。在我看来不错,不过如果没有这些一次性使用的变量,它可能不会那么冗长。在模拟:contains()
中,应保持区分大小写if(blog[i].textContent.indexOf('Novedades')>-1{
Gotcha,为了清晰起见,故意用冗长的语言。非常感谢!你救了我的命,让我免于头撞桌子!