вам трудно, потому что text()
делает то, что должен - возвращает текст этого и всех дочерних элементов. Самое простое, что нужно сделать, это добавить еще один тег к каждому <li>
и использовать этот тег.
Например:
<ul id="list">
<li><span>item1</span>
<ul>
<li><span>sub1</span></li>
<li><span>sub2</span></li>
</</ul>
</li>
</ul>
И тогда у вас есть простой селектор:
$("#list li").click(function() {
alert($(this).find("span").eq(0).text());
});
или, если возможно (в зависимости от вашего стиля), вы можете добавить событие в промежуток:
$("#list span").click(function() {
alert($(this).text());
});
Если вы не можете добавить эти <span>
(как вы говорите), вы можете использовать jQuery .contents()
, чтобы добавить их для вас, подобно тому, как это было сделано здесь:
Скрыть B в A
B