Имея следующий простой html-код:
<div id="content">
This is a test
</div>
Я не понимаю, почему все в порядке:
$(function(){
text = 'this is a text';
word = text.split(' ');
alert(word[1])
})
но это не так:
$(function(){
text = $('#content').text();
word = text.split(' ');
alert(word[1])
})
JQuery или собственный javascript, проблема такая же. Я ожидаю предупреждения с одним и тем же словом в обоих случаях, но только в первом. Где моя ошибка?
Вот моя проблема: http://jsfiddle.net/bbtdf/2/
Благодарю!
Попробуйте это (вам нужно обрезать текст)
$(function(){
var text = $.trim($('#content').text()),
word = text.split(' ');
alert(word[1])
});
У вас есть 3 пробела для отступов в контенте. Текстовая функция возвращает второе пространство в предупреждении для этого случая, поэтому оно отображается пустым.
Удалите отступы/пробелы перед контентом, вы увидите ожидаемый результат.
Попробуйте с этим кодом
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<div id="content">
This is a test
</div>
<script>
$(function(){
text = $('#content').text();
word = text.split(' ');
alert(word[1])
});
</script>
Вам нужно обрезать текст /html, потому что у них будут пробелы до и после содержимого
$(function(){
var text = $('#content').text(),
word = $.trim(text).split(' ');
console.log(word[1])
})
Демо: скрипка
Еще вам нужно написать html как <div id="content">This is a test</div>