2016-10-30 2 views
2

Я хочу добавить HTML-код в таблицу, используя .append(SOMET HTML CODE).Проблемы с содержимым .append(), содержащим кавычки и точки

В моем <tr> я хочу реализовать onclick() события - который вызывает функцию -, но мне кажется, что есть некоторые проблемы с кавычками и с самого контентом (потому что содержание имя футболистов, и это имя содержит точка, как: M**.** Neuer)

Мои JQuery выглядит следующим образом:

$('.player_table').append('<tr id="'+pos+players.id+'" costsForThisPlayer="12.2" class="goalKepperRow" onclick="addGoalkeeperByClickEvent("'+players.name+'", "gk1", 12.2)><td>something</td></tr>'); 

и мои HTML выглядит действительно странно то

<tr id="gk149" costsforthisplayer="12.2" class="goalKepperRow" onclick="addGoalkeeperByClickEvent(" m.hitz",="" "gk1",="" 12.2)=""><td>something</td></tr> 

и это та часть, где разбился:

onclick="addGoalkeeperByClickEvent(" m.hitz",="" "gk1",="" 12.2)=""> 

, как я должен правильно изменить Jquery часть?

+0

побег проблематичные цитаты с помощью префикса \. – connexo

ответ

4

Ваша строка HTML содержит двойные кавычки в двойных кавычках. Вы должны использовать одинарные кавычки и избежать их:

'... onclick="addGoalkeeperByClickEvent(\''+players.name+'\', \'gk1\', 12.2)"...' 
// or: 
'... onclick=\'addGoalkeeperByClickEvent("'+players.name+'", "gk1", 12.2);\'...' 

На стороне записки:

  1. costsForThisPlayer не valid HTML attribute. Используйте атрибуты data-* для сохранения пользовательских значений.
  2. Использование атрибута onClickis not good practice. Вы должны рассмотреть возможность установки обработчика события .click() с помощью jQuery.

    Поскольку данные добавлены динамически, вам придется делегировать click событие на столе с помощью .on():

    $('.player_table').on('click', `.goalKepperRow`, function(){ 
        var costsForThisPlayer = $(this).attr('data-costsForThisPlayer'); 
        var playerName = $(this).attr('data-name'); 
        var something = $(this).attr('data-something'); 
        // all the values that you're passing to the onClick function are here 
        // ... the rest of your addGoalkeeperByClickEvent() method ... 
    }); 
    

    Тогда ваш HTML Создание часть будет:

    $('<tr/>').attr({ 
        'id'      : pos+players.id, 
        'class'     : "goalKepperRow", 
        'data-costsForThisPlayer' : "12.2", 
        'data-name'    : players.name, 
        'data-something'   : "gk1" 
    }) 
    .append('<td>something</td>') 
    .appendTo('.player_table'); 
    
+0

Я предлагаю использовать синтаксис '' text $ {string} 'для удобного чтения. –

+0

thx для вашей помощи И THX для вашего дополнительного примечания стороны, но функции, которые я хочу вызвать, основаны на значениях из базы данных, вот почему я попытался с помощью onClick() в HTML-части ... (надеюсь descripbed его достаточно хорошо hehe) – nbg15

+0

@ nbg15, то почему бы не использовать атрибуты 'data- *' для хранения значений базы данных для каждого элемента? –

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