簡體   English   中英

如何訪問<p>三層里面</p><div>使用 Javascript?</div><div id="text_translate"><p> 我正在嘗試使用 Javascript,這樣當用戶按下網頁上的按鈕時,一個段落將在兩個文本之間交替。 問題是我要操作的<p>元素位於<div>內的<div>內的<div> div> 內。</p><p> 我的代碼的低級模型如下所示:</p><pre class="lang-html prettyprint-override"> <div id="div1"> <div id="div2"> <div id="div3"> <p>text1</p> </div> </div> </div></pre><p> 我發現的所有解決方案只有 state 如果<p>在一個<div>內,該怎么辦; 對我不起作用的解決方案。</p><p> 這是我最近的嘗試:</p><pre class="lang-js prettyprint-override"> 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"; } }</pre><p> 我怎樣才能讓它發揮作用?</p><p> 編輯:到目前為止似乎沒有任何效果。 <div>元素都有類,但這應該不會影響事情,對吧?</p><p> Edit2:很抱歉占用您的時間,但我發現這個問題完全是另外一回事。 我一直在為我的 function 調用使用保留字,但不知何故從來沒有注意到這是問題所在。 再次感謝那些回答的人,在發布下一個問題之前,我將更深入地研究我的代碼。</p></div>

[英]How to access a <p> inside three layers of <div> using Javascript?

我正在嘗試使用 Javascript,這樣當用戶按下網頁上的按鈕時,一個段落將在兩個文本之間交替。 問題是我要操作的<p>元素位於<div>內的<div>內的<div> div> 內。

我的代碼的低級模型如下所示:

<div id="div1">
  <div id="div2">
    <div id="div3">
      <p>text1</p>
    </div>
  </div>
</div>

我發現的所有解決方案只有 state 如果<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>元素都有類,但這應該不會影響事情,對吧?

Edit2:很抱歉占用您的時間,但我發現這個問題完全是另外一回事。 我一直在為我的 function 調用使用保留字,但不知何故從來沒有注意到這是問題所在。 再次感謝那些回答的人,在發布下一個問題之前,我將更深入地研究我的代碼。

為什么不直接使用

var x = document.getElementById("div3")

如果直接通過 Id 訪問,那么其他 DIV 是什么並不重要。

您可以使用 document.querySelectorAll 獲取頁面上所有 p 標簽的數組。

const pTags = document.querySelectorAll('p')

pTags.forEach((p, i) => {
  if(i % 2 === 0) {
    p.innerHTML = 'text1'
  } else {
    p.innerHTML = 'text2'
  }
})

如果 div 始終按此順序排列,您可以這樣做:

var x = document.querySelector('#div1 #div2 #div3 p');

除了 ID,您可以更具體並嘗試以下操作:

var x = document.querySelector('div > div > div > p')

這將是一個非常嚴格的實現並遵循沒有 ID 或類的條件。

使用querySelector以使用 CSS 選擇器#div3 p ,這意味着“選擇具有div3 id 的元素內的段落元素”。

然后,當您只是更改一串文本時,請更改該元素的textContent或其innerText (它們之間存在細微差別。)

 const para = document.querySelector('#div3 p'); const button = document.querySelector('button'); button.addEventListener('click', translate); function translate() { if (para.textContent === 'text1') { para.textContent = 'text2'; } else { para.textContent = 'text1'; } }
 <div id="div1"> <div id="div2"> <div id="div3"> <p>text1</p> </div> </div> </div> <button type="button">Translate</button>

如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div>

[英]How to access a `<div>` tag inside a `<p>` tag?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 在JavaScript中使用createElement,如何添加 <p> <span>在里面</span> <div> <span>?</span> 如何使用JavaScript訪問中繼器內的Div 如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div> JavaScript-如何在div中打印p元素 如何使用 vue 在 div 中獲取 img 和 p 標簽? 添加一個 <p> javascript中的DIV中的元素 如何使用帶有div id作為結果的javascript加三個數字? JavaScript:如何使用第一個表的節點訪問div中的第二個表 如何使用javascript打開div內的網頁 如何使用 JavaScript 在 div 中抓取文本?
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM