Я использую сообщение ajax и получаю данные в форме HTML. Я должен разделить данные и части места данных на всем протяжении страницы. Я создал свои данные ответа, чтобы быть чем-то как <p id='greeting'> Hello there and Welcome </p> <p id='something'>First timer visiting our site eh'</p>
Это немного более сложно и динамично, но я могу понять это, если ответили на этот вопрос.Спасибо
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
//Need to split data here
}
});
Update:
success:function(data) {
data = $('<div/>').append(data);
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
Поскольку вы не можете использовать .find
должным образом, так как это не дочерний элемент, но если вы добавите его к пустому узлу, то сможете. Другой альтернативой может быть использование .filter
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
});
Вы можете извлечь из data
и добавить туда, куда вам нужно. Вы также можете сделать что-то вроде возврата JSON вместо этого, и вместо извлечения html из html просто получить доступ к html из объекта.
$(data.greeting).appendTo('#one')
$(data.something).appendTo('#two')
Ответ должен быть таким:
({ 'greeting':'html', 'something' :'other html' })
(Ответ Медера будет работать, если вы хорошо знакомы с JSON, но регулярные выражения, вероятно, немного проще и подойдут для этого.)
Вероятно, вам придется расстаться текст ответа с использованием регулярных выражений. Например, если текст ответа:
<p id='greeting'> Hello there and Welcome </p>
<p id='something'>First timer visiting our site eh'</p>
Тогда вы можете использовать некоторый JavaScript вроде этого:
var greeting = response_text.match(/<p id='greeting'>.*</p>/);
var something = response_text.match(/<p id='something'>.*</p>);
(Этот сайт отлично подходит для изучения регулярных выражений: http://gskinner.com/RegExr/ )