我尚未解决的问题与我的’hover(或鼠标hover)post中的’获取元素ID’有关

基本上这是我的function:

function FillDivLeft(groups, side) { var cnt = 1; $.each(groups, function (index, groups) { $(side) .append( $(document.createElement('label')).attr({ id: cnt + 'lbl', class: 'myClass' }) ); $('#' + cnt + 'lbl') .append( $(document.createElement('input')).attr({ id: groups.GroupCode, type: 'checkbox', name: 'testGroup', class: 'leftClass' }) ); $('#' + groups.GroupCode).after ( $(document.createElement('span')).text(groups.GroupName).attr({ class: 'leftSpan' }) ); $('#' + cnt + 'lbl').after($(document.createElement('br'))); cnt = cnt + 1; }); } 

我已经尝试了所有种类,虽然创建了新元素,分配了类等,但似乎页面上的所有jquery函数都不起作用,例如:

 $('.leftSpan').click(function () { $('#lblOutput').text(this.id); }); 

甚至父div上的hoverfunction也不起作用。

我看不出可能的原因,所以任何帮助或指针都会受到赞赏。

如果您使用的是jQuery 1.7+,则需要使用’on’。 您可以将’body’替换为元素的任何父div

 $('body').on('click','.leftSpan',(function () { $('#lblOutput').text(this.id); }); 

仅使用.click函数需要在dom准备好时创建元素。 它不会将事件附加到动态创建的元素。 如果您使用的是jQuery 1.6及更低版本,则必须使用.live

你可以在http://api.jquery.com/on/上阅读更多关于’on’的信息。

你试过$(this)而不是this吗? 或者使用.attr('id')而不是.id

$('.leftSpan').click(function () { $('#lblOutput').text($(this).attr('id')); });