Javascript 选择子元素的问题
我有这个htmlJavascript 选择子元素的问题,javascript,jquery,Javascript,Jquery,我有这个html <div class="sez-form"> <table><input></table> </div> 这可能成为 <div class="sez-form"> <table><input></table> <div class="previsione"></div> </div> 我正在检查pre
<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>');
}
});
$(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'+输入值);
log('exists');
}否则{
$(this).closest('.sez form').append('Qui le singole previsioni'+输入值+'');
}
});
始终在控制台中返回“exists”
我做错了什么?我已经尝试了尽可能多的选项来识别子previsioni div,但是没有运气您需要使用,或者因为previsioni
是sez表单
元素的子元素。另外,由于.length
返回数字,因此它永远不会为null
,请直接使用该属性
if ($(this).closest('.sez-form').find('.previsioni').length) {
console.log('exists');
}
用这个比较
if ($(this).closest('.sez-form').find('.previsioni').length != 0)
首先,这是一个错误的布局,浏览器会尝试为您填写
和
。最好使用正确的方法:
<div class="sez-form">
<table>
<tr>
<td><input /></td>
</tr>
</table>
</div>
或者,您可以使用:
$("input").closest(".sez-form").find(".previsione");
仅供参考,
length
属性永远不会为null
-它是一个整数值。
这是无效的HTML标记。…。@A.Wolff yes。这只是为了显示DOM结构是什么is@LelioFaieta对不起,我现在明白你的意思了。但是什么是.importo
??你是对的。我尝试了你的代码,但长度有限!=这就是问题所在
<div class="sez-form">
<table>
<tr>
<td><input /></td>
</tr>
</table>
<div class="previsione"></div>
</div>
$(".previsione").html();
$("input").closest(".sez-form").find(".previsione");