Javascript 实时预览中的Jquery if空循环
我有一个工作现场预览脚本。但是现在我希望当表单字段中有输入时,只显示电话和传真字段。但我想这句空话肯定有问题。有人有办法解决这个问题吗?多谢各位Javascript 实时预览中的Jquery if空循环,javascript,jquery,loops,Javascript,Jquery,Loops,我有一个工作现场预览脚本。但是现在我希望当表单字段中有输入时,只显示电话和传真字段。但我想这句空话肯定有问题。有人有办法解决这个问题吗?多谢各位 $(document).ready(function() { updatePreview(); $('#live-preview-form input, #live-preview-form textarea #live-preview-form select').bind('blur keyup',updatePreview); });
$(document).ready(function() {
updatePreview();
$('#live-preview-form input, #live-preview-form textarea #live-preview-form select').bind('blur keyup',updatePreview);
});
function updatePreview(){
var contact = $('#lp-contact'),
company_name = $('#lp-company_name'),
company_extra = $('#lp-company_extra'),
adress = $('#lp-adress'),
country_code = $('#lp-country_code'),
zip = $('#lp-zip'),
city = $('#lp-city'),
phone = $('#lp-phone'),
fax = $('#lp-fax'),
url = $('#lp-url'),
mail = $('#lp-mail');
contact.text($('#contact').val());
company_name.text($('#company_name').val());
company_name.html($('#lp-company_name').html().replace(/\n/g,'<br />'));
company_extra.text($('#company_extra').val());
adress.text($('#adress').val());
country_code.text($('#country_code').val() + '-' );
zip.text($('#zip').val());
city.text($('#city').val());
if(! $('#phone')){phone.text('T ' + $('#phone').val())};
if(! $('#fax')){fax.text('F ' + $('#fax').val())};
url.text($('#url').val());
mail.text($('#mail').val());
}
此条件:
if (!$('#phone')) {
phone.text('T ' + $('#phone').val())
};
应该是
if (!$('#phone').length) {
phone.text('T ' + $('#phone').val())
};
问题是,$('#phone')
是一个jQuery实例对象,它总是一个真实值。这个对象是一个HTML元素的集合。所以检查元素是否在页面上的正确方法是检查此集合的长度。基本上,可以通过以下简单片段来演示:
if({length:0}){
警报(“一”);
}
if({length:0}.length){
警报(“两个”);
}
请贴一把小提琴。非常感谢您的回答和很好的解释。糟糕的是,在我的脚本中它不起作用。我用你的2号更新了小提琴。代码片段。没有什么变化。有什么想法吗?没有,但也许我在描述我的问题时遇到了问题:-)字母F和T应该只有在字段中有输入时才可见。我还在尝试。我编辑了另一个想法,但没有成功。你可以看到问题中的编辑。好的,我得到了你想要的。看看这个演示:这正是我想要的。酷。非常感谢你!你能帮我解释一下它是怎么工作的吗?
if (!$('#phone').length) {
phone.text('T ' + $('#phone').val())
};