Вот мой ДИВ:Выберите текст из DIV - не очевидный способ
<div id="myDiv">The
<span class="cordial-err-corr" id="good0-0" data-original-title="" title="">best</span>
way to receive congrats
<span>
<span class="cordial-err-corr" id="good0-1" data-original-title="" title="">are</span>
<div class="btn-group">
<a class="btn btn-mini dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a class="prop0-1">is</a></li>
<li><a class="prop0-1">are</a></li>
</ul>
</div>
</span> to give a correct answer.</div>
Я хотел бы получить этот текст: «Самым лучшим способом получить поздравляю буду дать правильный ответ.»
Поэтому я звоню $('#myDiv').text()
. Он не работает, так как я получаю два элемента в ul.dropdown-menu
.
Следующим шагом является фильтрация или удалить не-хочет детей, то есть:
<div class="btn-group">
<a class="btn btn-mini dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a class="prop0-1">is</a></li>
<li><a class="prop0-1">are</a></li>
</ul>
</div>
Я пытался играть с $ .filter или $ .not или $ .children с JQuery селекторы и т.д. I не может найти правильный способ сделать это. Нужна помощь!
Вы можете найти код в jsfiddle: http://jsfiddle.net/Ku7FY/
[EDIT] Одно из решений предлагает этот код:
$('#result').append($('#myDiv').text().replace($(".btn-group").text(),"")).append('<br />')
Если несколько div.btn-group
существует, просто цикл, как:
var result = $('#myDiv').text();
$(".btn-group").each(function() {
result = result.replace($(this).text(),"");
});
$('#result').append(result).append('<br />')
regex для извлечения символов div.text()? –
Ну, сначала вы должны отличить, какой ли является правильным, чем вы можете продолжить фильтр. – Alex
Если под «правильным» вы подразумеваете выбранный, вы можете попробовать что-то с помощью селектора ': selected' jQuery: http: // api .jquery.com/selected-selector/ – CD001