簡體   English   中英

JavaScript-如何在div中打印p元素

[英]JavaScript- how to print p element inside div

我知道我可以用靜態HTML做到這一點,但我想動態創建,而且我正在苦苦掙扎。 這是我想要做的:我有2個div。

    <div class="TxtTile">

    </div>
    <div class="pInfo">

    </div>

在每個div里面我想要幾個段落。 讓我們說每個div中有10個。 帶有"TxtTile"類的第一個div我希望得到一些東西的標題,讓我們說像年齡,國家,經驗,街道等標題。在另一個帶有'pInfo''pInfo' div中我想要包含與TxTtitle對應的信息。 比如,25歲,經歷10年等,將從我已經設置的本地存儲中獲取。 這兩個div將是彼此相鄰的,我已經用css完成了。

例如。 左邊

<div class="TxtTile">               `<div class="pInfo">

 <p class="styleforP">                   <p class="styleforP">
    Age                                      25
                                         </p>
 </p>

</div>                                </div>`

如果我能用本機js做這個,我會很高興。

有兩種方法可以做到這一點:

1)你可以創建一個元素並繼續追加它的位置

首先得到你要創建新元素的div元素,這里不是有一個類我更喜歡基於id的元素選擇

var element = document.querySelector('.TxtTile');

創建一個p元素並向其添加類,您也可以在其中添加內容

var pElem = document.createElement('p');
pElem.className = 'styleforP';
pElem.innerHTML = 'Age';

在div中添加創建的元素

element.appendChild(pElem);

2)創建一個HTML模板將值傳遞給該模板並創建innerHTML並直接將innerHTML放入您的父元素中

var item = {
    name: "My Name",
    age: 30,
    other: "Other Info"
}
var template = [];

template.push(
    '<div class="row">',
        '<span class="name-info">' + item.name + '</span>',
        '<span class="age-info">' + item.age + '</span>',
        '<span class="other-info">' + item.other + '</span>',
    '</div>'
);

var htmlString = template.join('');
var element = document.querySelector('.TxtTile');
element.innerHTML = htmlString;

如果你要添加很多項目,那么第二種方法要好得多,因為創建單個元素並將它們附加到DOM樹是非常慢的,然后傳遞整個HTML字符串。

 var myData = { title: "My title", info: 25 }; // Store references to the wrapper elements // The first element that has this class, or null if there aren't any var titleWrapper = document.querySelector(".js-titleWrapper"); var infoWrapper = document.querySelector(".js-infoWrapper"); // Create the paragraph elements var titleP = document.createElement("p"); var infoP = document.createElement("p"); // Add classes titleP.classList.add("styleForP"); infoP.classList.add("styleForP"); // Add the text titleP.innerText = myData.title; infoP.innerText = myData.info; // Add the paragraphs to their wrappers titleWrapper.appendChild(titleP); infoWrapper.appendChild(infoP); 
 <div class="TxtTile js-titleWrapper"> </div> <div class="pInfo js-infoWrapper"> </div> 

我認為如果你有多個記錄然后你不能通過querySlector來處理這個是一個壞主意。

好主意是創建這樣的父元素

<div id="parent"></div>

然后通過javascript獲取此元素,然后將此元素附加到您的動態記錄中

var parentEle = document.getElementById("parent");

如果記錄是多個,則應用循環

var child = Document.createElement("div");
child.innerHTML = "<div class='TxtTile'>age</div><div class='pInfo'>25</div>";
parentEle.appendChild(child);

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

相關問題 添加一個 <p> javascript中的DIV中的元素 JavaScript-如何將“ message” div更改為黃色 如何在其中打印帶有 canvas 的 div 元素 Javascript-如何在單擊關閉按鈕時顯示div? JavaScript-如何在數組中遞歸地查找元素並返回其路徑? javascript-如何通過鼠標位置分離特定元素? 在JavaScript中使用createElement,如何添加 <p> <span>在里面</span> <div> <span>?</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> Javascript創建元素作為另一個元素的子元素 如何 select 和切換 javascript 中 div 內的元素
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM