使用jQuery从处理程序中查找#ID


Find #ID from handler with jQuery

如何使用jQuery找到#[ID] ?

我有一个处理程序,检查一些信息,我正在检查与jQuery如果有发现一个ID…但它总是返回"没有",它给我错误,所以这意味着有错误!

我是这样做的…

jQuery:

posting.done(function(data){
    var warnings = $(data).find('.warnings');
    $('form#gastenboek').append(data);
    if (warnings.length > 0) {
        alert("errors")
    } else {
        alert("Nothing");
    }
});

处理程序:

if (!empty($warning) && isset($warning))
{
    foreach($warning as $warning)
    {
        echo "<span id='warnings' style='color:orange;' class='glyphicon glyphicon-flag'></span><a style='color:orange;'>" . $warning . "</a><br>";
    }
}

首先,您在错误的地方使用attr()方法,因为它应该包含属性作为第一个参数。由于没有元素具有属性#warnings,因此您将获得null

其次,DOM中只有一个元素具有特定的id,除非您通过向[]提供id将其指定为数组。所以用.find()搜索DOM只会返回第一个匹配的元素。 因此,您应该对data返回的元素实现class 警告。然后使用jQuery的.find()搜索具有特定警告类的元素:
var warnings = $(data).find('.warnings');
if(warnings.length > 0){
     alert("warnings");
} else {
     alert("nothing");
}

您需要使用 find()

var warnings = $(data).find('#warnings');

注意: Id必须是唯一的,使用class代替

PHP:

if (!empty($warning) && isset($warning))
{
    foreach($warning as $warning)
    {
        echo "<span style='color:orange;' class='glyphicon glyphicon-flag warnings'></span><a style='color:orange;'>" . $warning . "</a><br>";
        //                                                                 --^-- adding class
    }
}
jQuery:

posting.done(function(data){
    var warnings = $(data).find('.warnings');
    $('form#gastenboek').append(data);
    if (warnings.length > 0) {
    //           --^-- getting count of elements
        alert("warnings")
    } else {
        alert("Nothing");
    }
});