我正在使用此代码段将输入字段转换为reqular text。
$(".supernappula").live('click', function() {
$('.item-quantity .simpleCart_input').replaceWith(function(){
return '<span class='+this.className+'>'+this.value+'</span>'
})
});
但是,如果该值已从输入更改为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>'
});
});
但它实际上并没有做任何事情。所以基本上,如果它已经被转换,我将如何阻止它执行?
答案 0 :(得分: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
的孩子,这在您的情况下是错误的。
两个类都与同一个元素相关联。所以你的选择器之间不应该有任何空格..
答案 1 :(得分:0)
你的元素必须至少有一个空格。 所以你可以用这样的东西进行验证:
if($.trim($(".item-quantity .simpleCart_input").html()) == ""){return false;}
...