簡體   English   中英

在JavaScript中使用createElement,如何添加 <p> <span>在里面</span> <div> <span>?</span>

[英]Using createElement in JavaScript, how to add <p> and <span> inside of <div>?

我正在嘗試在句子旁邊創建一個句子,在其中可以將文本拖放到該句子中。

因此,我只想使用javascript創建此HTML標記:

<div>
  <p>Data1<span class = "smallBox droppable"></span></p>
  <p>Data 2<span class="smallBox droppable"></span></p>
</div>

該代碼起作用了,我可以將文本拖放到與“ Data1”和“ Data 2”並排的框中。

到目前為止,我有:

 var data2 = ['one', 'two', 'three'] function dragDrop2(arr) { var length = arr.length; var list = document.createElement("div"); for (var i = 0; i < length; i++) { var paragraph = document.createElement("p"); var spanning = document.createElement("span"); spanning.classList.add("smallBox", "droppable", "draggable"); paragraph.appendChild(document.createTextNode(arr[i])); paragraph.appendChild(spanning); list.appendChild(paragraph); } return list; } document.getElementById("example").appendChild(dragDrop2(data2)); 
 <div id="example"></div> 

現在,鑒於我當前的javascript / html嘗試,拖放部分在框內不起作用,並且我不認為“ span”標簽位於“ p”標簽的下方,因為我的框位於下方每個句子。

如果有人可以幫助我,我將不勝感激! 另外,我可以做些什么來查看正在創建的標記嗎? 例如,創建一個警報,該警報將顯示所有html標記,從原始的'div id =“ example” ??開始? (.html ???)

 var data2 = ['one', 'two', 'three'] function dragDrop2(arr) { var length = arr.length; var list = document.createElement("div"); for (var i = 0; i < length; i++) { var paragraph = document.createElement("p"); var spanning = document.createElement("span"); spanning.classList.add("smallBox", "droppable", "draggable"); spanning.appendChild(document.createTextNode(arr[i])); paragraph.appendChild(spanning); list.appendChild(paragraph); } return list; } document.getElementById("example").appendChild(dragDrop2(data2)); $( "span" ).draggable().droppable(); 
 p { border: 1px solid #000; padding: 20px; } span { background-color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <div id="example"></div> 

我假設您正在使用jquery ui中的draggable和droppable

您必須執行的draggabledroppable創作元素后發揮作用。

另一個關鍵點是要改變這一點:

paragraph.appendChild(document.createTextNode(arr[i]));

對此:

spanning.appendChild(document.createTextNode(arr[i]));

如何訪問<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?

暫無
暫無

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

相關問題 Javascript-如何添加 <input> 使用createElement方法將元素放入div 如何僅使用 javascript 中的 document.createElement 制作此 web 架構(div 內) 如何使用jQuery或javascript在div中的innerhtml文本之后添加跨度? 如何添加多個元素,例如<span>,</span> <p> <span>要么</span> <div> <span>內</span> <option> <span>的標簽</span> <select> <span>在ReactJs中?</span> 怎么分裂 <p> <span>你好</span> </p> 使用javascript <span>你好</span> 如何使用javascript添加,刪除html中的div或span? 使用javascript在div中創建多個span 使用JavaScript檢查div內span的值 使用 Javascript/Jquery 在 P 標簽內添加一個 SPAN 如何訪問<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>
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM