Javascript разделить строку между несколькими пролетами
Я искал Google в поисках ответа, но, похоже, не могу его найти.
Мне нужно разделить следующую строку на отдельные переменные
строка хранится в виде переменной:-
var location = autocomplete.getPlace();
var address = location['formatted_address'];
Output:-
<span class="street-address">Street address</span>, <span class="locality">Town</span>, <span class="region">County</span> <span class="postal-code">Post Code</span>, <span class="country-name">Country</span>
например.
var street = "Street address";
var town = "Town";
var county = "County";
var postc = "Post Code";
var country = "Country";
Так что мне нужно, чтобы содержимое между
<span class="street-address"></span>
<span class="locality"></span>
etc...
Иногда есть дополнительные пролеты, иногда меньше.
Я посмотрел на некоторый JavaScript, но он получает только содержимое между:-
<span class="locality"> and the very last </span>
Любая помощь в правильном направлении будет очень
4 ответа
Используете ли вы простой JavaScript? или jQuery?
в JavaScript вы можете получить текст внутри элемента с помощью:
var1 = document.getElementByClass("street-address").innerText
или в jQuery:
var streetAddress = $('.street-address').text();
var city= $('.city').text();
Можете ли вы использовать JQuery? Проверьте это https://jsfiddle.net/zsxar4r4/
var address = [];
$('span').each(function(idx, span) {
address.push($(span).html());
})
console.log(address);
Если вы используете jQuery:
var 1 = $('span.street-address').text();
var 2 = $('span.locality').text();
var 3 = $('span.region').text();
var 4 = $('span.postal-code').text();
var 5 = $('span.country-name').text();
Это должно быть так просто, если я не упустил что-то в этом вопросе.
Вы можете использовать getElementsByClassName()
метод, который будет возвращать объект, похожий на массив.
https://developer.mozilla.org/en/docs/Web/API/Document/getElementsByClassName
var addressData = document.getElementsByClassName('address');
//And than do something with the object. You can access it like an array:
console.log(addressData[2].innerHTML);