2017-09-03 51 views
-1

我需要把单词“你好”包含属性跨度“数据什么”,即这个跨度:如何选择跨度谁具有特定属性

<span data-whatever="nomatterwhat"> </ span> 

我需要这样做:

$ ("span[data-whatever]").html("hello"); 

请注意,上面这是与JQuery,但我需要知道如何做与纯JavaScript的相同。

+0

使用DOM API。 https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector –

+0

尝试使用“CSS属性选择器”的Google搜索。 – 2017-09-03 05:16:13

+0

我不同意@torazaburo,你连接的这个问题不是这个问题的重复。这是CSS,如果你知道答案和我在这里需要的关系是什么,那么对你有好处,但我不知道如何解决我与你链接的帖子的问题。 –

回答

1

您可以使用querySelector

document.querySelector('span[data-whatever]').innerHTML = "You text";

+0

这根本不起作用。 – 2017-09-03 05:28:34

+0

它适用于我的情况,非常感谢 –

+0

@torazaburo OP已接受它。你能否告诉我这个答案有什么问题,以便我可以改进它。我应该循环查询任何'querySelectorAll'返回并设置innerHTML或使用'querySelector'? – adiga

-1

试试这个:

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

我更新了代码来修复它。 – adda82

+0

这不太可能适用于所有浏览器,因为'querySelectorAll'的结果是'NodeList',它可能没有'forEach'方法。在任何情况下,为什么不只是使用属性选择器来开始? – 2017-09-03 05:29:20