У меня есть особый случай, когда я хотел бы получить текст элемента DIV с указанным c именем класса, которое ближе всего к выделенному тексту. Может быть несколько DIV с одним и тем же именем класса, поэтому я пытаюсь найти ближайший. Я получаю выделенный текст и HTMLDIVELEMENT, где выделенный текст, от getSelectionTextAndContainerElement (). Теперь я пытаюсь найти ближайший элемент DIV с классом blogUser. Hier мой HTML код:
<div class = "tHead">
<div class = "tRow">
<div class = "tCell">
<h1>{sBlogs.0.blogName}</h1>
</div>
</div>
</div>
<f:for each="{sBlogs}" as="blog">
<div class = "tSub">
<div class = "tRow">
<div class = "tCell blogUser">
User: {blog.blogUser}
</div>
<div class = "tCell blogDate">
Date: {blog.blogDate -> f:format.date()}
</div>
<div class = "tCell blogCat">
Category: {blog.blogCat}
</div>
</div>
</div>
<div class = "content">
{blog.blogContent}
</div>
<div class="links">
<f:image class="reply" src="EXT:simpleblog/Resources/Public/Icons/search.svg" />
</div>
</f:for>
<div class="replyBlog">
<f:form.textarea class="editBlog" property="editBlog" rows="10" cols="80"/>
</div>
<f:form.button type="button" class = "sButton editSave" title = "editSave" id = "editSave" name = "editSave">Speichern</f:form.button>
</f:form>
и это мой js код
$(".reply").on("click",function(){
var textEl = getSelectionTextAndContainerElement();
var className= "div."+textEl['containerElement']['className'];
var divC=$(className).closest("div.tRow");
alert(divC);
var divC2=divC.find('div.blogUser');
var bUser=divC2.text();
alert(bUser);
var text1=bUser+"\n"+textEl['text'];
alert(text1);
$(".editBlog").val(text1);
Сначала я попробовал:
var divC=$(className).closest("div.blogUser").text();
но текст ( ) функция всегда возвращает пустую строку. Интересно, что если я выберу div напрямую, он возвращает строку
$("div.blogUser").text();
vars div C, а divC2 получает jquery OBJECTs, но если я использую объекты с text (), значение не возвращается.
Понятия не имею, в чем проблема! Надеюсь, кто-нибудь может мне помочь.