2012-11-16 46 views
0

如何在不使用jQuery的情況下從以下三個元素中返回Some Text,<a href="abc.html">Some Anchor</a><img src="abc.jpg" />?換句話說,如何在不使用jQuery的情況下返回$('#t1).text(),$('#t2).text(),$('#t3).text()?如果多個元素一次只選擇一個元素,我不需要返回數組。原生JavaScript equivilent單個選定元素的文本()

<td id="t1">Some Text</td> 
<td id="t2"><a href="abc.html">Some Anchor</a></td> 
<td id="t3"><img src="abc.jpg" /><td> 

jQuery不會如下文字()。看起來有些過分,因爲我不擔心爲多個元素返回一個數組。

text: function(value) { 
    return jQuery.access(this, function(value) { 
     return value === undefined ? 
      jQuery.text(this) : 
      this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(value)); 
    }, null, value, arguments.length); 
}, 

感謝

回答

2

您可以檢索節點(S)的文本,像這樣:

var el = document.getElementById("t1"); 
var text = el.textContent || el.innerText; 

在MDN網站here

+0

啊哈!,謝謝!我第一次使用el.data,它沒有html元素。後來嘗試了innerHTML,並在文本值上犯了錯誤。只是好奇,爲什麼textContent數據,innerText over innerHTML? – user1032531

+0

@ user1032531 innerText是IE的textContent版本。 innerText要注意的一點是它不會返回隱藏的文本。欲瞭解更多信息,請查看MDN的鏈接。他們解釋得好得多,然後我可以:) – Bruno

1

data上的textContent和的innerText一些更多的信息是Nodes獲取其數據的屬性(非遞歸)。 innerHTML是元素上的HTML屬性。 textContent是獲取元素的文本(不含HTML)的標準屬性。 innerText是獲得textContent的非標準舊IE方式。

你現在應該知道你需要什麼:-)

+0

謝謝弗洛裏安,現在我知道更多! – user1032531