我只是java脚本中的新学习者,我在java脚本或jquery中进行DOM操作
我试图抓住我的java脚本变量中的'p'标签,但不起作用 有人可以做必要的纠正。
可以使用java脚本或jquery为我提供答案
我在这里也有一些类似的问题(Getting tags when whole HTML page is in one javascript variable)[对这个问题中令人困惑的解释感到抱歉]
<!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-javascript和dom-javascript-get-text-after-tag
没有回答我的问题
我的场景
我在一个java脚本变量中有所有html页面,我需要将它附加到我的页面但我们不能这样做,因为你不能有两个身体或HTML标记。所以我需要通过标签分割它.....但整个元素是在java脚本变量!所以任何想法我该怎么办?
答案 0 :(得分:1)
你应该这样做
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
答案 1 :(得分:1)
var myHTML ='<p>Hello World</p>'
这里 myHTML 是一个不是dom元素的字符串。它不包含名为 getElementsByTagName
的函数如果您在页面中搜索,则会:document.getElementsByTagName
答案 2 :(得分:1)
为什么不简单地这样做:
<!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>
答案 3 :(得分:1)
好的,让我直截了当。您想要将此行“第一段文字:Hello World”附加到文档中。
以下是DEMO
JS
var myHTML=document.getElementsByTagName("p");
myHTML[0].innerHTML="Text of first paragraph:Hello World "+myHTML[0].innerHTML;
说明:您正在一个名为myHTML的var中保存所有带有标记“p”的元素。现在myHTML是一个节点列表。 nodeList就像一个数组。
所以你调用nodelist的元素就像调用数组的元素一样
因此第一段将是myHTML [0]。 现在,您要将Text附加到第一个段落,以便以下行用于
目的 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);
答案 4 :(得分:0)
尝试这样的事情
<script>
var myHTML ='<p>Hello World</p>'
document.write("Text of first paragraph: " + $(myHTML).html()); // using jquery
</script>