簡體   English   中英

使用 JavaScript 或 jquery 操作 DOM 元素

[英]Manipulating DOM element using JavaScript or jquery

我只是 javascript 的新手,我正在 javascript 或 jquery 中進行 DOM 操作

我試圖捕捉我的 javascript 變量中的“p”標簽,但它不起作用有人可以做必要的更正。

可以使用 javascript 或 jquery 給出答案,兩者都對我有用

我在這里也有一些類似的問題( 當整個 HTML 頁面都在一個 javascript 變量中時獲取標簽)[抱歉這個問題中令人困惑的解釋]

W3學校

<!DOCTYPE html>
<html>
<body>

<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>getElementsByTagName</b> method.</p>

<script>
var myHTML ='<p>Hello World</p>'
x=myHTML.getElementsByTagName("p");
document.write("Text of first paragraph: " + x[0].innerHTML);
</script>

</body>
</html>

我已經看過這個類似的問題get-content-of-a-div-using-javascriptdom-javascript-get-text-after-tag

這不能回答我的問題

我的場景是
我有一個 javascript 變量中的所有 html 頁面,我需要將它附加到我的頁面,但我們不能這樣做,因為你不能有兩個 body 或 HTML 標簽。 所以我需要按標簽分割它..... 但整個元素都在 javascript 變量中! 那我該怎么做呢?

你應該這樣做

allPara = document.getElementsByTagName("p");
alert("Text of first paragraph: " + allPara[0].innerHTML);

演示。

jQuery 中,您可以編寫(對於第一個P元素)

$('p:first').html();

演示。

我認為,您應該先學習 vanilla JavaScript,至少基礎知識和MDN是學習它的好地方。

更新 :

您可以使用它來做到這一點(因為 OP 在變量的注釋/解析元素中要求它)

var htmlString = '<span>Span</span><p>Para 1</p><p>Para 2</p>';
el = document.createElement('div');
el.innerHTML = htmlString;
var ps = el.getElementsByTagName('p');
console.log(ps[0].innerHTML); // Para 1

演示。

var myHTML ='<p>Hello World</p>'

這里myHTML是一個字符串而不是一個 dom 元素。 它不會包含名為getElementsByTagName的函數

如果您在頁面中搜索,它將是: document.getElementsByTagName

為什么不簡單地這樣做:

<!DOCTYPE html>
<html>
<body>


<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>getElementsByTagName</b> method.</p>

<script>
var myHTML ='<p>Hello World</p>';
document.write("Text of first paragraph: " + myHTML);
</script>

</body>
</html>

對於內部文本:

<script>
var myHTML ='<p>Hello World</p>';
var para = document.createElement('P');
para.innerHTML=myHTML;   
document.write("Text of first paragraph: " + $(para).find('P').text());
</script>

好吧,讓我明白這一點。 您想將這一行“第一段文本:Hello World”附加到文檔中。

這是演示

JS

var myHTML=document.getElementsByTagName("p");
myHTML[0].innerHTML="Text of first paragraph:Hello World "+myHTML[0].innerHTML;

說明:您將所有帶有標記“p”的元素保存在名為 myHTML 的 var 中。 現在 myHTML 是一個節點列表。 nodeList 就像一個數組。

因此,您可以像調用數組的元素一樣調用節點列表的元素

因此,第一段將是 myHTML[0]。 現在您想將文本附加到第一段,以便以下行服務於目的

 myHTML[0].innerHTML="Text of first paragraph:Hello World "+myHTML[0].innerHTML;

編輯:根據 OP 的進一步澄清,可以理解 OP 需要另一個帶有所需文本的“p”標簽。

演示

代碼

var myHTML ='Hello World';
var para = document.createElement("p");
para.innerHTML="Text of first paragraph: " +myHTML;
document.body.appendChild(para);

嘗試這樣的事情

    <script>
        var myHTML ='<p>Hello World</p>'
        document.write("Text of first paragraph: " + $(myHTML).html()); // using jquery
    </script>

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM