Javascript 如何选择具有特定属性的范围

Javascript 如何选择具有特定属性的范围,javascript,css-selectors,Javascript,Css Selectors,我需要将单词“hello”放在包含属性“data where”的范围中,即对于此范围: <span data-whatever="nomatterwhat"> </ span> 请注意,上面是JQuery,但我需要知道如何使用纯javascript实现同样的功能。您可以使用 document.querySelector('span[data which]')。innerHTML=“You text”尝试以下操作: var el = document.querySelec

我需要将单词“hello”放在包含属性“data where”的范围中,即对于此范围:

<span data-whatever="nomatterwhat"> </ span>
请注意,上面是JQuery,但我需要知道如何使用纯javascript实现同样的功能。

您可以使用

document.querySelector('span[data which]')。innerHTML=“You text”

尝试以下操作:

var el = document.querySelectorAll('span');
el.forEach(function(item){
  if(item.hasAttribute('data-whatever')){
    item.innerHTML = 'Hello';
  }
})

使用domapi。试着在谷歌上搜索“css属性选择器”。我不同意@torazaburo的说法,你链接的那个问题和这个问题不一样。这就是css,如果你知道答案和我这里需要的东西之间的关系,那对你很好,但是我不知道如何用你链接的帖子来解决我的问题。你好,罗伯托。因此,首先,您没有阅读关于CSS选择器的手册,也没有阅读关于使用JavaScript使用CSS选择器查找元素的手册。所谓“手册”,我指的是一百个文档页面、教程、简介或谷歌结果页面中的任意一个。现在您无法阅读此问题的答案,特别是第二个答案,它清楚地表明“注意,这也可以在JQuery选择器中使用,或者使用
document.querySelector
”。你会发现,如果你放慢速度,阅读和消化东西,作为一名程序员,你的进步会快得多。好吧,我理解,只是在一个与我无关的问题上找到答案的概率可能很难。。。或者,当我提问时显示的“可能已经有你答案的问题”没有显示你链接的帖子时,这非常困难。我更新了代码来修复它。这不可能在所有浏览器中都起作用,因为
querySelectorAll
的结果是一个
NodeList
,它可能没有
forEach
方法。在任何情况下,为什么不从属性选择器开始呢?这根本不起作用。它对我的情况有效,所以much@torazaburoOP已经接受了。你能告诉我这个答案有什么问题吗?这样我可以改进它。我应该循环使用
querySelector返回的内容并设置innerHTML还是使用
querySelector
?它的问题在于它不起作用
querySelectorAll
返回一个
NodeList
,它没有
innerHTML
属性。这意味着OP完全没有接受任何东西,除了他没有真正尝试过。您是循环还是使用
querySelector
取决于OP的意图——他是想对所有这些元素执行此操作,还是只希望有一个元素。
var el = document.querySelectorAll('span');
el.forEach(function(item){
  if(item.hasAttribute('data-whatever')){
    item.innerHTML = 'Hello';
  }
})