javascript
  • jquery
  • html
  • 2016-05-23 14 views 0 likes 
    0

    Проблема: Я не могу изменить элемент HTML, который я создал внутри функции.Изменение элемента html, созданного в jQuery, внутри jQuery

    Код:

    Я прочитал, я могу создать элемент из строки таким образом.

    var base_html = $("<div id='base'><div id='chart_container_bars'></div>"+ 
             "<br>"+ 
             "<br>"+ 
             "<div id='chart_container_lines'></div>"+ 
             "<table class='table table-bordered' id='tabla_servicios' style='width:100%; padding:12px'>"+ 
             "</table>"+ 
            "</div>"); 
    

    Поэтому я предположил, что могу использовать селекторы для изменения этого фрагмента кода HTML, подобного этому.

    var tabla_servicios = base_html.find($("#tabla_servicios")); 
    tabla_servicios.html("<p>HI</p>"); 
    

    А затем получить HTML обратно в строку с:

    var html_str = base_html.html(); 
    

    Но я не был в состоянии сделать это.

    Желаемый результат:

    var final_html_str = $("<div id='base'><div id='chart_container_bars'></div>"+ 
             "<br>"+ 
             "<br>"+ 
             "<div id='chart_container_lines'></div>"+ 
             "<table class='table table-bordered' id='tabla_servicios' style='width:100%; padding:12px'>"+ 
             "<p>HI</p>"+ 
             "</table>"+ 
            "</div>"); 
    

    Вопрос:

    Есть ли способ, чтобы создать HTML-элемент из строки и изменить его с селекторами потом?

    +0

    Try 'jQuery.parseHTML()' вместо '$'. – Harish

    +0

    Вместо того, чтобы выбирать идентификатор, а затем использовать find с выбранным элементом, просто передайте его прямо в find: https://jsfiddle.net/b3Lqj3ka/ – AtheistP3ace

    ответ

    3

    В функции поиска jquery вам нужно передать селектор в виде строки.

    var base_html = $("<div id='base'><div id='chart_container_bars'></div>"+ 
     
             "<br>"+ 
     
             "<br>"+ 
     
             "<div id='chart_container_lines'></div>"+ 
     
             "<table id='tabla_servicios' class='table table-bordered' id='tabla_servicios' style='width:100%; padding:12px'>"+ 
     
             "</table>"+ 
     
            "</div>"); 
     
    
     
    var tabla_servicios = base_html.find("#tabla_servicios"); 
     
    tabla_servicios.html("<p>HI</p>"); 
     
    
     
    var html_str = base_html.html(); 
     
    
     
    console.log(html_str);
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

    +1

    Я редактировал свой ответ! знак равно –

    Смежные вопросы