получить текст в теге "<li>" с помощью JavaScript - PullRequest
0 голосов
/ 27 июня 2018

Я хочу получить список li текста тега.

Я получил список тегов lis для работы, но я не назначил текстовое содержимое для моего country объекта.

Сценарий

    var lis = document.getElementById("navbar").getElementsByTagName("li");
        var url = '@Url.Action("Paychart", "Pivot")';
        var country;
        for (var i = 0; i < lis.length; i++)
        {
            country[i] = lis[i].textContent;
        }

HTML

    <div id="navbar">
        <ul id="sortable1" class="connectedSortable">
            @foreach (var item in Model)
            {
                <li class="ui-state-default">@item</li>
            }
        </ul>
    </div>

1 Ответ

0 голосов
/ 27 июня 2018

Во-первых, вам нужно инициировать country, например, var country = {};, иначе вы получите ошибку в этой строке country[i] = lis[i].textContent;

Во-вторых, я предлагаю вместо этого

    var lis = document.getElementById("navbar").getElementsByTagName("li");

используйте querySelectorAll, и это может заменить вышеперечисленное следующим образом

    var lis = document.querySelectorAll("#navbar li");

Фрагмент стека

var lis = document.querySelectorAll("#navbar li");

var url = '@Url.Action("Paychart", "Pivot")';
var country = {};
for (var i = 0; i < lis.length; i++) {
  country[i] = lis[i].textContent;
}

console.log(country)
<div id="navbar">
  <ul id="sortable1" class="connectedSortable">
    <li class="ui-state-default">@item 1</li>
    <li class="ui-state-default">@item 2</li>
    <li class="ui-state-default">@item 3</li>
    <li class="ui-state-default">@item 4</li>
  </ul>
</div>
...