查找动态创建的文本并在其周围添加标题结构

时间:2017-08-17 19:01:17

标签: jquery html

我在页面加载时生成了以下div:

<div id="errorSummary" class="error-summary" style="display:none"></div>

用户未输入少数字段并点击下一步后,错误消息会显示在页面顶部。然后生成以下div:

<div id="errorSummary" class="error-summary" style>
"Please correct the following:"
<ul>
<li>
<a class="message" tabindex="-1" href="#textbox"> Enter first name</a>
</li>
</ul>
</div>

我尝试了以下但是它不起作用。该函数在页面加载时触发,但在添加动态文本时不会触发。

$(function () {
        var str = $('.error-summary');
        var match ="Please correct the following:"
        var x = str.text();
        if (x === match) {
            str.html("<h2 tabindex=\"-1\"> Please correct the following</h2> ");
        }
    })

我有两个问题:

  1. 如何查找动态添加的文字&#34;请更正以下内容&#34;使用jquery或java脚本。

  2. 如何在文字周围添加 H2 标签&#34;请更正以下内容&#34;找到文本后动态动态。

3 个答案:

答案 0 :(得分:1)

您的代码之后被解雇并在页面加载时被触发的原因,因为它是一个匿名函数,只会在页面加载时才会被触发,而不是在此之后,但根据您的要求,您应该明确根据你的逻辑调用函数。 在用户未在输入字段中输入任何内容时显示错误容器时使用/调用以下代码

var html = $(".error-summary").html();
        if($(".error-summary").text().indexOf("Please correct the following:")!=-1)
        {
            html = html=html.replace('Please correct the following:','<h2 tabindex=\"-1\"> Please correct the following</h2>');
            $(".error-summary").html(html);
        }

将此代码复制到展示容器的正下方的相同位置。

答案 1 :(得分:0)

带有“validation-summary”类的元素在哪里?这应该有效:

<div id="errorSummary" class="error-summary" style>
<span class="validation-summary">"Please correct the following:"</span>
<ul>
<li>
<a class="message" tabindex="-1" href="#textbox"> Enter first name</a>
</li>
</ul>
</div>

答案 2 :(得分:0)

Q1:如何查找动态添加的文字

将文本动态添加到页面后,您可以使用jQuery查询包含所述文本的选择器,并使用jQuery text()方法获取文本。

&#13;
&#13;
$(function(){
 //This will be my dynamically added text or html
 var str = '<a href="google.com">Here</a>';
 //Since my string IS holding html I want to use html() method
 //And set the html or text of the selector
 $('.main').html(str);
 //After the selector has received the dynamically created content
 //I find the text that was previously dynamically added
 var tx = $('.main').find('a').text();
 console.log(tx)
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main"></div>
&#13;
&#13;
&#13;

Q2:如何在其他元素周围添加H2

为此,只需找到您想要包装的元素即可。并使用jQuery方法wrap();

&#13;
&#13;
$(function(){
  //this will find the dynamically created element, then wrap it with an h2
  $('.main').find('a').wrap('<h2 />');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
  <a href="google.com">Google</a>
</div>
&#13;
&#13;
&#13;