Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.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 如果元素存在,如何将.after()用作.html()?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如果元素存在,如何将.after()用作.html()?

Javascript 如果元素存在,如何将.after()用作.html()?,javascript,jquery,html,Javascript,Jquery,Html,这是我的密码: $('button')。在('click',function()上{ $('div')。之后('此元素应是唯一的(); }); 这是一个div 单击而不知道如何生成元素,在这里您可以检查一些通用解决方案,并实现您自己的逻辑 var文本; $('#text')。在('change',function()上{ text=$(this.val(); }); $('button')。在('click',function()上{ if($('div').next('p:contain

这是我的密码:

$('button')。在('click',function()上{
$('div')。之后('此元素应是唯一的(

); });

这是一个div

单击
而不知道如何生成
元素,在这里您可以检查一些通用解决方案,并
实现您自己的逻辑

var文本;
$('#text')。在('change',function()上{
text=$(this.val();
});
$('button')。在('click',function()上{
if($('div').next('p:contains('+text+'))).length){
}否则{
$('div').next('p').remove();
$('div')。在(''+text+'

')之后; } });

这是一个div

单击
可以检查元素是否存在,以及是否更新了内容。像这样的方法应该会奏效:

var index = 0;

$('button').on('click', function(){
index++;

    if($('#myWrapper').length == 0) {
        $('div').after('<p id="myWrapper">this element should be unique' + index +'</p>');
    } else {
        $('#myWrapper').html('<p>this element should be unique' + index +'</p>');
    }
});
var指数=0;
$('button')。在('click',function()上{
索引++;
如果($('#myWrapper')。长度==0){
$('div')。在('

之后,此元素应该是唯一的'+index+'

'); }否则{ $(“#myWrapper”).html(“此元素应是唯一的”+index+”

”; } });
JS小提琴示例:


希望有帮助

最好添加一个包装器,并替换其内容:

var$target=null;
$('button')。在('click',function()上{
if(!$target)$target=$('').insertAfter('div');
$target.html(“此元素应该是唯一的”

”; });

这是一个div

如果只有一个p,请单击

编辑

$('button').on('click', function() {
  if (!($('div').next('p').length)) {
    $('div').after('<p>this element should be unique</p>');
  }else{
    $('div').next('p').html('this will replace');
  }
});
$('button')。在('click',function()上{
如果(!($('div').next('p').length)){
$('div')。之后('此元素应是唯一的(

); }否则{ $('div').next('p').html('this will replace'); } });

更改
.on('click'
更改为
.one('click'
@j08691实际上,每次用户单击
按钮时,我都需要执行该函数,而不是一次。为什么要使用.after()而不是.html()?@Kweis因为没有包装器。为什么不使用包装器?这不是我需要的,我需要替换新内容。!不仅仅是防止附加。@stack我编辑了答案,仍然不确定你是如何使用代码的。检查代码段这不是他要的。如果不对布局和代码做一些假设,我不知道I don’我不认为有任何其他的方法可以通用。你只是在替换,他想使用after和html。所以你需要在替换后开始插入和。请告诉我是否可以用另一个元素替换一个元素?这是我当前的结构

,我想要这个结构
(我将
替换为
)。这可能吗?@stack是的,您可以使用任何HTML字符串。但是请注意,在DOM中,它将被包装在
div
元素中,就像
这是一个div。

这是一个div…。
这很糟糕,您将放在中。我没有注意到Kweis,只有拷贝粘贴。@Kweis我的意思是“那还不错”是这个答案的想法。@Oriol是的,你是对的,这可能会有问题,实际上主要问题是缺少包装。@Oriol,狙击手是根据给出的示例制作的,在这种情况下,这是一个div此元素应该是唯一的

click@stack没错。这就是为什么我回答你应该加一个包装。你应该澄清为什么你不能更改结构并添加包装器。@堆栈为什么不在添加标记时只包含id?我用了一个更好的示例更新了答案。@Oriol看,我知道,你的解决方案是最标准的。但我是团队的一员,我的职责只是js编码。我不访问HTML代码。