1

我有一个编辑器,其中包含一些 html 文本,如下所示:

<div>嗨<p>你好</p>再见</div>

预期结果 :

div : 你好

所以在这里我只需要标签前的文本。尝试使用 $(div).text() 但它给出了 Hi Hello Bye,而我只需要标签前的文本。
谁能帮我编写javascript函数?谢谢你。

4

4 回答 4

3

previousSibling应该在这里为您完成工作,如下所示:

$('p')[0].previousSibling.nodeValue

小提琴链接

于 2013-10-07T07:14:12.777 回答
2
 var div = document.getElementsByTagName ("div") [0];
 alert (div.childNodes[0].data );//Hi

小提琴

于 2013-10-07T07:05:37.470 回答
1

参考

添加div到 Hi 并设置id一个div

<body onload="myFunction();">
  <div id="div1"><div id="div2">Hi</div><p>Hello</p>bye</div>
</body>

function myFunction()
{
  var x = document.getElementById("div1").tagName;
  var y = document.getElementById('div2').innerHTML;
  var z = x + " : " + y;
  alert(z);
  var a = document.getElementById("div1");
  a.innerHTML = z;
}
于 2013-10-07T07:01:38.890 回答
0

也许你可以尝试:

var $temp = $('<div>Hi<p>Hello</p>bye</div>');
$temp.find('p').replaceWith(function(){return "________"});
//it return:  <div>Hi________bye</div>
var text = $temp.text().split('________')[0];
//return: Hi
于 2013-10-07T07:02:44.070 回答