Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 如何选择动态创建的ajax元素_Javascript_Jquery_Ajax_Javascript Events - Fatal编程技术网

Javascript 如何选择动态创建的ajax元素

Javascript 如何选择动态创建的ajax元素,javascript,jquery,ajax,javascript-events,Javascript,Jquery,Ajax,Javascript Events,快速提问。我有这样的html代码: <li class='entry'> <div class='entryContent'> <p class='entryText'>Entry text></p> <a href="#" class='entryReply'>Reply</a> </div> </li> 条目文本> 当我点击回复时,一个

快速提问。我有这样的html代码:

<li class='entry'>
    <div class='entryContent'>
        <p class='entryText'>Entry text></p>
        <a href="#" class='entryReply'>Reply</a>
    </div>
</li>
  • 条目文本>

  • 当我点击回复时,一个带有回复表单的div被附加到“条目”中。 所以它看起来像:

    <li class='entry'>
        <div class='entryContent'>
            <p class='entryText'>Entry text></p>
            <a href="#" class='entryReply'>Reply</a>
        </div>
        <div class='replyForm'>
            //form stuff
        </div>
    </li>
    
  • 条目文本>

    //表格材料
  • 现在我要做的是创建userscript,它将找到动态div.replyForm并在其中添加一些内容:

    <li class='entry'>
        <div class='entryContent'>
            <p class='entryText'>Entry text></p>
            <a href="#" class='entryReply'>Reply</a>
        </div>
        <div class='replyForm'>
            //form stuff
    
            //MyAppendedStuff
        </div>
    </li>
    
  • 条目文本>

    //表格材料 //我的附属品
  • 我已经试过了

    $("body").on("focus", ".replyForm", function(){ 
        $(this).append('<span>Hello World!</span>'); 
    }); 
    
    $(“body”).on(“focus”和“.replyForm”,function(){
    $(this.append('helloworld!'));
    }); 
    
    但它不起作用


    有什么想法吗?

    您正在为
    div.replyForm
    创建一个
    focus
    侦听器。您可能希望将侦听器绑定到表单输入。大概是这样的:

    $('body').on("focus", "div.replyForm input", function () {
        $('div.replyForm').append('<span>Hello World!</span>');
    });
    
    $('body')。关于(“焦点”,“div.replyForm输入”,函数(){
    $('div.replyForm').append('Hello World!');
    });
    

    您能否在创建div时将其加载到div中?或者在ajax调用的成功回调中将其添加到HTML中?见相关帖子。除非你做了一些事情,比如让它
    内容可编辑
    或者添加一个
    选项卡索引
    ,否则像
    焦点
    这样以键盘为中心的事件看起来不会起作用……好吧,自我创建的div不是我的。代码已经在页面上了。我只想创建一个userscript,它将为动态创建的userscript添加更多的代码。我会仔细看看你的相关帖子。非常感谢!嗯,它适用于已经存在的内容。但是如果我们在页面加载或单击事件之后加载.replyForm呢?如果使用(如上所示),那么选择器将查找动态生成的元素。当然,这取决于您生成的特定HTML结构。我不知道为什么,但这次成功了(即使没有输入)。谢谢你的帮助!