错误消息中的“描述” HTML元素(无ID)

时间:2018-07-03 09:02:26

标签: jquery

我有一个AJAX流程,该流程返回一个“有效负载”,其中每个顶级元素都有一个ID,该ID用于用匹配的ID替换现有元素(当前页面内)。

如果找不到要替换的ID,则“替换”会引发错误消息。

有时候,有效载荷的元素没有ID(可能出了点问题……),因此错误消息中的ID为“ undefined”,没有帮助。

在错误消息中“描述”此类元素的一种好方法是什么? innerHTML也许?或通过某种方式向上或向下导航直到找到ID?

示例:

// THIS = Element from AJAX payload
strElementID = $(this).attr("id");  
if (typeof strElementID === "undefined")
{
    // Warn if no ID
    myErrorHandler("ReplaceWith content ID not valid [" + "*** DISPLAY SOMETHING USEFUL HERE ***" + "]");
} else
{
    // Replace 
    objJQ = $("#" + strElementID);  // Object to be replaced
    if (objJQ.length === 0)
    {
        // Warn if ID valid, but not matched
        myErrorHandler("ReplaceWith content ID not found [" + "#" + strElementID + "]");
    } else
    {
        objJQ.replaceWith($(this).children());
    }
}

有效负载示例:

<div>
    <span id="FirstName">Fred</span>
    <span id="LastName">Blogs</span>
    <div id="Error">Customer is marked inactive</div>
    <div>Warning: Customer does not have an address <span id="ErrorNo">#1234</span></div>
</div>

页面有

<body>
    <p>First name: <span id="FirstName">FIRST NAME HERE</span></p>
    <p>Last name: <span id="LastName">LAST NAME HERE</span></p>
    <!-- note there is no element with ID=Error -->
</body>

替换有效载荷中每个在页面中具有匹配ID的ID。我想要所有未替换的错误记录。特别是如果有效负载元素没有ID

页面中不存在id =“ Error”,但由于它具有ID,因此足以进行调试以获取“ ID = [Error] not found”。但是第二次我得到“ ID = [Undefined]”(或者使用tagName我得到“ DIV”-其中可能有很多,并且其信息不足)

我希望找到的是一种聪明的方法,它可以显示足够的信息进行调试,而不会淹没错误消息框。也许一些innerHTML,或者如果我能找到一个ChildID。我一直在寻找关于可以轻松找到对日志记录有用的想法。

1 个答案:

答案 0 :(得分:0)

只是想了解您的问题:

如果您的ID为“ anyId”

if ($("#anyId").length > 0) {
    //// write a code to replace
}

您可以在更换之前进行预检查。因此,如果该ID存在,则进行替换。否则不做任何事情。从而防止异常。答案是基于我对您问题的理解。