Конкатенация в селекторе jQuery

Простая проблема. У меня есть переменная js, которую я хочу объединить в селектор jQuery. Однако он не работает. Ошибок не возникает. Что не так? Как правильно конкатенировать переменную в какой-либо текст в селекторе jQuery.

<div id="part2"></div>

<script type="text/javascript" >

$('#button').click(function () 
{
var text = $('#text').val();    
var number = 2;
$.post('ajaxskeleton.php', {
red: text       
}, 
    function(){
    $('#part' + number).html(text);
    }); 
});


</script> 

Ответы

Ответ 1

Нет ничего плохого в синтаксисе

$('#part' + number).html(text);

jQuery принимает строку (обычно селектор CSS) или DOM Node в качестве параметра для создания объект jQuery.

В вашем случае вы должны передать String в $(), который

$(<a string>)

Убедитесь, что у вас есть доступ к переменным number и text.

Для проверки выполните:

function(){
    alert(number + ":" + text);//or use console.log(number + ":" + text)
    $('#part' + number).html(text);
}); 

Если вы видите, что у вас нет доступа, передайте их в качестве параметров функции, вы должны включить uual параметры для $.get и передать им пользовательские параметры.

Ответ 2

Правильный синтаксис конкатенации.

Скорее всего, функция обратного вызова даже не вызывается. Вы можете проверить это, поместив строку alert(), console.log() или debugger в эту функцию.

Если он не вызывается, скорее всего, есть ошибка AJAX. Посмотрите на привязку обработчика .fail() после $.post(), чтобы узнать, что такое ошибка, например:

$.post('ajaxskeleton.php', {
    red: text       
}, function(){
    $('#part' + number).html(text);
}).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(arguments);
});