我试着使用Javascript,这样当用户按下网页上的按钮时,一个段落会在两个文本之间交替。问题是我试着操作的<p>
元素位于<div>
中的<div>
中的<div>
中。
下面是我的代码的低级模型:
<div id="div1">
<div id="div2">
<div id="div3">
<p>text1</p>
</div>
</div>
</div>
我找到的所有解决方案都只说明了如果<p>
在一个<div>
之内该怎么做;对我不起作用的解决方案。
以下是我最近的尝试:
function translate() {
var x = document.getElementById("div1").getElementById("div2").getElementById("div3").getElementsByTagName('p')[0];
if (x.innerHTML === "text1") {
x.innerHTML = "text2";
} else {
x.innerHTML = "text1";
}
}
我该怎么做?
编辑:到目前为止,似乎没有什么工作。<div>
元素都有类,但这不应该影响事情,对吗?
Edit 2:很抱歉占用了你的时间,但是我发现这个问题完全是另外一回事。我一直在函数调用中使用保留字,但不知何故从来没有注意到这是个问题。再次感谢那些回答我的人,我将在发布下一个问题之前更深入地研究我的代码。
5条答案
按热度按时间ki0zmccv1#
为什么不直接用
如果通过Id直接访问,则其他DIV是什么并不重要。
ryevplcw2#
如果div始终按此顺序排列,则可以按如下方式执行:
6ioyuze23#
可以使用document.querySelectorAll获取页面上所有p标记的数组。
tyg4sfes4#
代替Id,你可以更具体&尝试以下:
这将是一个非常严格的实现&在没有id或类的情况下遵循条件。
cwxwcias5#
使用
querySelector
是为了使用CSS选择器#div3 p
,它意味着"拾取id为div3
的元素内部的段落元素"。然后,当你只是改变一个文本字符串时,改变该元素的
textContent
,或者它的innerText
(它们之间有subtle differences)。