使用Jquery </div>在<div>中单击并显示内容

时间:2012-03-14 03:45:22

标签: jquery json

我使用JSON检索数据:

 $(document).ready(function () {
    var url = '<%: Url.Content("~/") %>' + "Products/GetMenuList";
    $.getJSON(url, function (data) {
        $.each(data, function (index, dataOption) {

            $("#navmenu-v").append("<li><a href='javascript:DoNothing();' id='list'>" 
            + dataOption.Name + "</a></li>");
        });
        $('#list').click(function () {
            //add some content to div
        });
    });

});

我想点击#list,然后做任何事情。但是当我使用alert进行测试时,它只能在第一个列表中运行。

谁能告诉我,我怎么能这样做?

感谢。

4 个答案:

答案 0 :(得分:1)

$('#yourdivid').html('whateveryouwant');

答案 1 :(得分:1)

扩展ubercooluk的答案:

您需要将其包装在单击事件处理程序中。

$('#yourdivid').click(function() {  $('#yourdivid').html('whateveryouwant');  });

编辑:尝试使用查询查找按ID或类引用添加的元素。 http://api.jquery.com/find/

像这样:

$('#yourdivid').click(function() { $('#yourdivid').find('.li-class or something that references these').html('whateveryouwant'); });

此外,永远不要使用id多次。使用类然后使用上面描述的find方法。

祝你好运!

答案 2 :(得分:1)

因为元素是在加载文档后动态创建的,所以普通的点击处理程序将不起作用。你必须委托处理程序,使用.on。 使用href='javascript:void(0);'来防止默认

$(document).ready(function () {
    var url = '<%: Url.Content("~/") %>' + "Products/GetMenuList";
    $.getJSON(url, function (data) {
        $.each(data, function (index, dataOption) {

            $("#navmenu-v").append("<li><a href='javascript:void(0);' id='list'>" 
            + dataOption.Name + "</a></li>");
        });
    });
   $('#navmenu-v').on('click','#list',function () {
      $('#mydiv').append('new code');
   });
});

答案 3 :(得分:1)

要按ID选择多个元素,您应该使用更好的选择器:

    $('a#list').click(function () {
        //add some content to div
    });