选择div中的最后一个元素

时间:2012-02-11 22:58:23

标签: javascript jquery

我有以下标记:

$(document).ready(function () {
    $('.lalala').bind('blur', function (e) {
        CheckFirstInput($(this));
    });
});

<div id="divContainer">
    <input type="text" class="lalala" />
    <p id="img1"></p>
</div>

以下脚本

function CheckFirstInput(element) {
    var txtLength = element.val();
    var parent;
    var lastElement;

    if (txtLength.length < 1) {
        parent = element.parent();
        lastElement = parent.last();
        lastElement.text('prazno e');
    }
    else {
        //element.parent().lastChild().text('4884384f384r34rf');
        parent = element.parent();
        lastElement = parent.last();                
        lastElement.text('ne e prazno');
    }
}

如果输入字段不为空,我想选择包装div的最后一个元素(<p>)并更改其文本。我该怎么做?

提前致谢!!

3 个答案:

答案 0 :(得分:2)

您需要选择元素父级的children()。您正在选择最后一位父级。 (这是父母。)

以下是有效的。我还清理了一些代码。

$('.lalala').blur( function () {
      CheckFirstInput($(this));
});

function CheckFirstInput(element) {
        if (element.val().length < 1) {
            element.siblings(':last').html('prazno e');
        }
        else {
            element.siblings(':last').html('ne e prazno ');
        }
}

工作小提琴

http://jsfiddle.net/CRccw/2/

答案 1 :(得分:1)

如果我说得对,你可以查看$(element).is(":empty")并使用parent.siblings(":last-child")

答案 2 :(得分:0)

您的问题已得到解答,但这是另一种方法:

$('.lalala').bind('blur', function (e) {
    CheckFirstInput($(this));
});
function CheckFirstInput($el) {
    var $last = $el.siblings().filter(':last');
    var html = ($el.val() == '') ? 'prazno e' : 'ne e prazno';
    $last.html(html);
}

DEMO