我试图在点击的元素之后创建一个输入元素,只有它不存在。 .next().not()
函数有效,但似乎无法找到动态创建的元素。
$(function(){
$("p").click(function(){
if($(this).next().not('input')){
var currentElement = $(this);
var currentText = ($(this).text());
var input = $('<input type="text" >');
var saveBtn = $('<button type="button">Save</button>');
input.val(currentText);
saveBtn.click(function(){
currentElement.text(input.val());
$((input).remove());
$((this).remove());
});
input.insertAfter(this);
saveBtn.insertAfter(input);
}
});
});
答案 0 :(得分:0)
.not()
不是布尔函数,它是一个选择器 - 它返回与选择器不匹配的给定集合的元素。要判断选择器是否找到任何内容,请测试其长度。
您根本不需要使用.not()
。如果.next('selector')
与选择器匹配,则返回下一个元素,否则返回空集合。
if ($(this).next('input').length == 0) {
...
}