Вы можете сделать так:
var showLi = $("<li></li>");
$("<a href='#' class='showData'>Show</a>").appendTo(showLi).click(function(){
alert("clicked");
});
$ul.append(showLi);
Это позволяет избежать повторного поиска элемента. showLi
уже является объектом jQuery, поэтому вам не следует снова передавать его в $()
. По названию переменной $ul
я предполагаю, что ее значение также является jQuery. Если это не так, вы действительно должны передать его $()
.
Кроме того, вы можете создать элемент с помощью:
$('<a />', {href: '#', class: 'showData', text: 'Show'})
Вы получаете ошибку, потому что вы пытаетесь объединить объект со строкой. Если у вас уже есть объект jQuery, вы можете искать потомков с помощью find()
.