Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果值不是';t未定义_Javascript_Jquery - Fatal编程技术网

Javascript 如果值不是';t未定义

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>' }) }); 但它实际上什么都没做。所以,基本上,如

我正在使用这个代码段将输入字段转换为reqular文本

$(".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>'
      }) 
    }   
});