Javascript 如果值不是';t未定义
我正在使用这个代码段将输入字段转换为reqular文本Javascript 如果值不是';t未定义,javascript,jquery,Javascript,Jquery,我正在使用这个代码段将输入字段转换为reqular文本 $(".supernappula").live('click', function() { $('.item-quantity .simpleCart_input').replaceWith(function(){ return '<span class='+this.className+'>'+this.value+'</span>' }) }); 但它实际上什么都没做。所以,基本上,如
$(".supernappula").live('click', function() {
$('.item-quantity .simpleCart_input').replaceWith(function(){
return '<span class='+this.className+'>'+this.value+'</span>'
})
});
但它实际上什么都没做。所以,基本上,如果它已经被转换,我如何阻止它执行呢?用if条件来封装替换
$(".supernappula").live('click', function() {
if( $('.item-quantity .simpleCart_input').length){
$('.item-quantity .simpleCart_input').replaceWith(function(){
return '<span class='+this.className+'>'+this.value+'</span>'
})
}
});
$(“.supernappula”).live('click',function(){
if($('.item quantity.simpleCart_input').length){
$('.item quantity.simpleCart_input').replaceWith(函数(){
返回“”+此.value+“”
})
}
});
编辑
两个类名都分配给同一个输入。。您使用了错误的选择器
尝试此$('.item quantity.simpleCart\u input')
$('.item quantity.simpleCart\u input')
的意思是。simpleCart\u input是.item quantity
的子项,这在您的情况下是错误的
两个类都关联到同一个元素。。因此,选择器之间不应该有任何空格。元素内部必须至少有一个空格。 因此,您可以通过以下方式进行验证:
if($.trim($(“.item quantity.simpleCart_input”).html())==“”){return false;}
…
无法回答您的问题,但请停止使用.live()
。它已经被弃用多年了。改为使用.on()
(jQuery 1.7+)或.delegate()
。在这里,之前有人问:[[1]:@jamesalardice似乎人们给了我不推荐的解决方案。on()和.delegate()有什么区别?@christiannikanen-它们只是比.live()更有效地处理事件委派的方法而已
was。请查看jQuery API文档以了解详细信息。谢谢,它是有效的,尽管我创建了一个变通方法,并将代码片段移动到我的ajax调用中。
$(".supernappula").live('click', function() {
if( $('.item-quantity .simpleCart_input').length){
$('.item-quantity .simpleCart_input').replaceWith(function(){
return '<span class='+this.className+'>'+this.value+'</span>'
})
}
});