选择子元素的问题

时间:2016-01-21 11:53:11

标签: javascript jquery

我有这个HTML

<div class="sez-form">
    <table><input></table>
</div>

那可以成为

<div class="sez-form">
    <table><input></table>
    <div class="previsione"></div>
</div>

我正在检查previsione是否存在但是这段代码:

$(document).on('blur','.importo',function(){
    var input_value = $(this).val();
    if ($(this).closest('.sez-form').next('.previsioni').length != null) {
        $('.previsioni').html('Qui le singole previsioni '+input_value);
        console.log('exists');
    }else{
        $(this).closest('.sez-form').append('<div class="previsioni">Qui le singole previsioni '+input_value+'</div>');         
    }
});
总是回归&#34;存在&#34;在控制台。

我做错了什么?我已经尝试了尽可能多的选项,以确定孩子previsioni div但没有运气

3 个答案:

答案 0 :(得分:1)

您需要使用.find().children(),因为previsionisez-form元素的子元素。同样,当.length返回您的号码时,它永远不会是null,直接使用该属性。

if ($(this).closest('.sez-form').find('.previsioni').length) {
   console.log('exists');
}

答案 1 :(得分:0)

使用此

进行比较
if ($(this).closest('.sez-form').find('.previsioni').length != 0)

答案 2 :(得分:0)

首先,这是一个错误的布局,浏览器会尝试为您填写<tr><td>。使用正确的一个总是更好:

<div class="sez-form">
    <table>
        <tr>
            <td><input /></td>
        </tr>
    </table>
</div>

现在,让我们添加一些内容:

$(".sez-form").append('<div class="previsione"></div>');

现在看起来像:

<div class="sez-form">
    <table>
        <tr>
            <td><input /></td>
        </tr>
    </table>
    <div class="previsione"></div>
</div>

要获得.html(),您可以使用:

$(".previsione").html();

或者,您可以使用:

$("input").closest(".sez-form").find(".previsione");