0

このスニペットを使用して、入力フィールドを通常のテキストに変換しています。

$(".supernappula").live('click', function() {
   $('.item-quantity .simpleCart_input').replaceWith(function(){
   return '<span class='+this.className+'>'+this.value+'</span>'
   })    
});

ただし、値がすでに入力からスパンに変更されている場合は、変換されますが、それをundefined行うべきではありません。

私は次のような解決策を考えていました:

$(".supernappula").live('click', function() {
    var howmany = $('.item-quantity .simpleCart_input').html();
    if(howmany == "undefined"){return false;}
        $('.item-quantity .simpleCart_input').replaceWith(function(){
        return '<span class='+this.className+'>'+this.value+'</span>'
        });
});

しかし、実際には何もしません。基本的に、すでに変換されている場合、どうすれば実行を停止できますか?

4

2 に答える 2

0

置換を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>'
      }) 
    }   
});

編集

両方のクラス名が同じ入力に割り当てられています..間違ったセレクターを使用しています..

これを試して $('.item-quantity.simpleCart_input')

更新されたフィドル

$('.item-quantity .simpleCart_input')つまり、.simpleCart_input はあなたのケースでは間違っている子です.item-quantity..

両方のクラスは同じ要素に関連付けられています..したがって、セレクターの間にスペースを入れないでください..

于 2012-10-08T10:09:05.247 に答える
0

You element must have at least a white space inside. So you can do the verification with something like this:

if($.trim($(".item-quantity .simpleCart_input").html()) == ""){return false;} ...

于 2012-10-08T10:20:27.433 に答える