<ul id="parent">
</ul>
<script>
var li =$('<li onclick="clicked(this)"/>').appendTo($('#parent'));
var span=$('<span/>').text('first').appendTo(li);
var ul1=$('<ul onclick="clicked(this)"/>').appendTo(li);
var li1=$('<ul onclick="clicked(this)"/>').appendTo(ul1);
var span1=$('<span/>').text('second').appendTo(li1);
function clicked(ref)
{
alert($(ref).children('span').text());
}
</script>
我的问题是,当我点击第二个时,警告框会弹出2次并显示第一个和第二个。但我只想要第二个。
我如何仅引用li1
。
答案 0 :(得分:1)
您将li1
作为孩子添加到另一个li。我不知道这是不是你想要的,但你不应该这样做。这也是你得到两个警报的原因。触发两个onclick处理程序。
答案 1 :(得分:0)
您需要像这样进行更改
var li1 =$('<li onclick="clicked(this)"/>').appendTo($('#parent'));
附加到父元素<ul id="parent">
HTH
答案 2 :(得分:0)
你有一个示例页面或小提琴,所以我们可以看到你想要做什么输出? 我认为您应该将代码重写为以下内容:
$('<li>')
.appendTo($('#parent'))
.click(function(){
clicked($(this));
}).append(
$('span').text('first')
);
function clicked(ref)
{
alert(ref.text());
}
无论如何,你似乎要将LI附加到另一个li中,你应该将它附加到父级ul