棘手的Jquery问题!

时间:2009-09-25 16:03:12

标签: jquery

我想要实现的目标。如果某些员工的Url不存在,那么我不想显示错误页面而是显示该员工的链接本身。我已经用两种不同的方式完成了它,但它们都没有工作。请帮忙。我有以下完整的代码。除了我的链接可以连接的没有html页面的url部分之外,所有这些都正常工作。请帮忙!!

function test(a,b) {

    var Name = a.text();
    $.ajax({
        type: "POST",
        url: "EmpServices.asmx/GetInfo",
        data: '{ "fieldName": "' + a.attr("id") + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(results) {
            //            if (results.d.Url.length < 2)
            //            {
            //               $('#url').hide();
            //            }
            if (results.d.EmpName.length > 1) {
                var html = '<div style="width:25%;"><img src="' + results.d.image + '" /></div>'
                    + '<div  style="width:75%;">'
                    + '<div><h3>' + results.d.EmpName + '</h3></div>'
                    + '</div>';
                //+ '<div id="url"><a href="' + results.d.Url+ '">Info></a></div>';

                if (results.d.Url.length < 2) 
                {
                    html += '<div id="url"><a href="' + results.d.Url+ '">Info></a></div>';
                }
                $(Employee).html(html);

            }
        },
        error: function() {
            $(Employee).html('Error');
        }
    });
}

2 个答案:

答案 0 :(得分:1)

你不能在那里打电话$('#Url').hide(),因为你还没有把它添加到dom中,做这样的事情:

var Name = a.text();
$.ajax({
    type: "POST",
    url: "EmpServices.asmx/GetInfo",
    data: '{ "fieldName": "' + a.attr("id") + '"}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(results) {
        if (results.d.EmpName.length > 1) {
            var html = '<div style="width:25%;"><img src="' + results.d.image + '" /></div>'
                + '<div  style="width:75%;">'
                + '<div><h3>' + results.d.EmpName + '</h3></div>'
                + '</div>';

            if (results.d.Url.length >= 2)
            {
                 html += '<div id="url"><a href="' + results.d.Url+ '">Info></a></div>';
            }



            if (results.d.ProductUrl.length < 2) 
            {
                html += '<div id="url"><a href="' + results.d.Url+ '">Info></a></div>';
            }
            $(contentElement).html(html);

        }
    },
    error: function() {
        $(contentElement).html('Error');
    }
});
}

我在这里做的不是添加网址div,而是尝试隐藏它,如果你没有网址,就不要添加div!

答案 1 :(得分:0)

您是否自己编写了服务器端代码?如果你这样做了,你可以修改它以返回空字符串('')而不是null,如果URL不存在,你可以替换它:

if (results.d.Url.length < 2) 
{
   html += '<div id="url"><a href="' + results.d.Url+ '">Info></a></div>';
}

用这个:

if (results.d.Url) 
{
   $(html).append('<div id="url"><a href="' + results.d.Url + '">Info></a></div>');
}

$(html).append(...)负责在封闭的DIV中插入URL。