2013-04-15 16 views
5

Mam strukturę HTML jakchcą zastąpić tekst wewnątrz rozpiętości nadrzędnej div

<div> 
    <div class="comments-title-wr clearFix"> 
    <span id="commentsSize" class="comments-title">Some Text</span> 
    </div> 

    <div id="testId"> 

    </div> 

</div> 

mogę pobierać testId i za pomocą tego chcę zamienić tekst wewnątrz <span> tagu.

Próbowałem za pomocą

$('#testId').parent().closest('.comments-title').text().replace('something else'); 

ale to nie działa

+2

[ 'wymiany()'] (http://www.w3schools.com/jsref/jsref_replace.asp) jest funkcją, która wymaga JS 2 parametrów. Jest to metoda 'String', która nie modyfikuje oryginału, zwraca nowy ciąg z zastosowanymi zamiennikami. Ale nie potrzebujesz nawet tej funkcji. Problem polega na tym, że wywołujesz metodę jQuery ['text()'] (http://api.jquery.com/text/) bez żadnych argumentów, która zwraca zawartość tekstową elementu, ale wszystko co dostajesz to Obiekt String i nie ma możliwości modyfikacji tekstu w samym elemencie. Zamiast tego powinieneś użyć wersji 'text()', która przyjmuje argument. – tcovo

+0

Dziękuję Tcovo za wyjaśnienie +1 za to :) – user965884

Odpowiedz

2

Prawdopodobnie chcesz

$('#testId').parent().find('.comments-title').text('something else'); 
2

Spróbuj tego,

Live Demo

$('#testId').prev('.comments-title-wr.clearFix').find('.comments-title').text('something else'); 
1
$('#testId').prev().children('span').text('something else'); 
0

Można użyć siblings. http://api.jquery.com/siblings/

.comments-title-wr i #testId są rodzeństwo. Jakoś tęskniłem za tym przęsłem, odpowiedź została zaktualizowana.

$('#testId').siblings('.comments-title-wr').find('.comments-title').text('something else'); 
2
$('#testId').prev().find('span').text('HI'); 
Powiązane problemy