我有这个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但没有运气
答案 0 :(得分:1)
您需要使用.find()
或.children()
,因为previsioni
是sez-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");