jQuery .text () метод не отображает значение элемента индекса - PullRequest
0 голосов
/ 28 марта 2020

У меня проблема со следующим кодом.
HTML Код

<head>
<!DOCTYPE html>
<html>
<head>
  <script src="test.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>          
    <div id="div1">
    <h1 id="array-item"></h1>
    <h3 id="index"></h3>
    </div>
</body>
</html>

тест. js


var name=['muzaffarpur','madhepura','bihar','patana','delhi','munger'];
var addImg=0;
$(document).ready(function(){
  setInterval(slide, 1230);
});
function slide(){
  if(addImg<=5){
       $('#array-item').text(name[addImg]);
       $('#index').text(addImg);
       addImg++;
  }else addImg=0;
}

ОЖИДАЕМЫЙ ВЫХОД
Когда addImg=0 должно отображаться muzaffarpur, когда addImg=1 должно дисплей madhepura и т. д. Выходными данными являются различные показатели muzaffarpur, ie первого индексированного значения.


ВЫХОД

Когда addImg=0 вывод m, addImg=1 вывод a , и так далее.


Он должен отображать индексированное значение, но он отображает различные признаки первого проиндексированного элемента на каждой итерации.

Ответы [ 5 ]

2 голосов
/ 28 марта 2020

Эта проблема возникает, когда name является зарезервированным именем переменной окна в javascript и должно быть строкой. Таким образом, когда вы используете:

var name=['muzaffarpur','madhepura','bihar','patana','delhi','munger'];

Он явно преобразует его в строку типа:

name = 'muzaffarpur,madhepura,bihar,patana,delhi,munger';

Вы можете исправить это, используя другое имя переменной массива, например arr:

var arr = ['muzaffarpur', 'madhepura', 'bihar', 'patana', 'delhi', 'munger'];
var addImg = 0;
$(document).ready(function() {
  setInterval(slide, 1230);
});

function slide() {
  if (addImg <= 5) {
    $('#array-item').text(arr[addImg]);
    $('#index').text(addImg);
    addImg++;
  } else addImg = 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">
  <h1 id="array-item"></h1>
  <h3 id="index"></h3>
</div>
1 голос
/ 22 апреля 2020

name зарезервированное ключевое слово в JavaScript. Вы sh не можете использовать его определенным пользователем способом. Зарезервированное ключевое слово

1 голос
/ 28 марта 2020

name является зарезервированным ключевым словом в javascript

var place_name = ['muzaffarpur', 'madhepura', 'bihar', 'patana', 'delhi', 'munger'];

var addImg = 0;
$(document).ready(function() {
  setInterval(slide, 1230);
});

function slide() {
  if (addImg <= 5) {

    $('#array-item').text(place_name[addImg]);
    $('#index').text(addImg);
    addImg++;
  } else {
    addImg = 0;
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">
  <h1 id="array-item"></h1>
  <h3 id="index"></h3>
</div>
1 голос
/ 28 марта 2020

Имя зарезервировано в javascript. Поэтому, пожалуйста, измените его.

var name1 = ['muzaffarpur', 'madhepura', 'bihar', 'patana', 'delhi', 'munger'];

var addImg = 0;
jQuery(document).ready(function () {
    setInterval(slide, 1230);
});

function slide() {
    if (addImg <= 5) {
        jQuery('#array-item').text(name1[addImg]);
        jQuery('#index').text(addImg);
        addImg++;
    } else {
        addImg = 0;
    }
}
1 голос
/ 28 марта 2020

В дополнение к тому, что @ pala sh сказал в своем ответе, вы также можете иметь внутри document.ready() обратный вызов события, так что вы никогда не будете конфликтовать с глобальной переменной window.name, возьмите путевое сообщение Вы должны убедиться, что назвали свои переменные, чтобы они не конфликтовали с другими глобальными переменными .

$(document).ready(function(){
  var name = ['muzaffarpur','madhepura','bihar','patana','delhi','munger'];
  var addImg=0;
  setInterval(slide, 1230);
  
  function slide(){
    if(addImg<=5){
         $('#array-item').text(name[addImg]);
         $('#index').text(addImg);
         addImg++;
    }else addImg=0;
  }
});
<head>
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>          
    <div id="div1">
    <h1 id="array-item"></h1>
    <h3 id="index"></h3>
    </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...