2011-11-22 24 views
3

是的,同意我應該從DOC想通了這一點,但沒有 - 我不能:-(jQuery選擇的第一個文本內容

<div id="jalla"> 
    <span> 
     <span class="ui-btn-text"> 
      I need this text 
      <span class="ui-collapsible-heading-status"> 
       click to collapse contents 
      </span> 
     </span> 
    <span> 
</div> 

如何簡單地選擇(和更新)文本「我需要這樣的文字:」這是我試過的一件事:。

notWorking = $('.ui-btn-text').text(); 
+3

的重複[這個問題](http://stackoverflow.com/ -的-的元素 - 不其子女JavaScript的選擇 - 僅文本)的問題/ 3268556 /。也是[google](https://www.google.com/search?q=select+only+text+of+element)上的第一個結果。 – Chad

+2

我對你的代碼進行了格式化,看起來你錯過了一個''或者有一個''太多了。你可能想糾正這一點。 –

+0

@Progrog他要求得到第一個文本元素,這就是問題所在。除了這個問題是一個「跨度」,而另一個是「td」,他們是一樣的。這兩個問題都在操縱嵌入式元素的文本。 – Chad

回答

2

有時jQuery是不是最好的答案。在這種情況下,HTML DOM使得它更容易

var span = document.querySelector('.ui-btn-text'); // first item with this class 
var text = span.childNodes[0];      // an actual text node 
text.nodeValue = "Changed!"      // done! 
0123。

看在行動:http://jsfiddle.net/C7Q6K/

編輯:對於舊的瀏覽器,你可以使用jQuery來獲取span本身:

var span = $('.ui-btn-text')[0]; // get the DOM element, not the jQuery object 
span.childNodes[0].nodeValue = "Changed!"; 
+0

你會在不支持'.querySelector()'的瀏覽器中使用什麼? –

+0

@FelixKling固定;感謝推動力。 – Phrogz

+0

@查德24秒太晚了! :) – Phrogz