Проблема с выполнением:
$(this).parent().text();
заключается в том, что он получит ВСЕ текст внутри div (sometext AND delete).
Я предполагаю, что вам нужен только текст в div, а не ссылка.
Я набрал пример на jsFiddle:
http://jsfiddle.net/HK794/
В идеале вы можете захотеть обернуть текст в промежуток, например:
<div id="div1"><span>sometext</span><a href="#">delete</a></div>
Тогда ваш JavaScript будет:
$("a").click(function(e){
$div = $(this).parent("div");
id = $div.attr("id");
text = $div.find("span").text();
alert( text );
e.preventDefault();
});
EDIT
Как @DarthJDG заявляет, что если вы не хотите менять разметку, любая из них также будет работать:
text = $div.get(0).childNodes[0].nodeValue;
//OR
text = $div[0].childNodes[0].nodeValue;
//OR
text = $div.get(0).firstChild.nodeValue;
//OR
text = $div[0].firstChild.nodeValue;
//OR
//Gets the first text node
$div.contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
}).text();