Как обновить метку с помощью jquery - PullRequest
1 голос
/ 22 августа 2011

У меня есть следующий HTML:

<div id="myDiv">
  <table id="tbl0">
    <tr id="tr0" style="display: none;">
      <td>
        <label id="lbl0"></label>
      </td>
    </tr>
    <tr id="tr1" style="display: none;">
      <td>
        <label id="lbl1"></label>
      </td>
    </tr>
    <tr id="tr2" style="display: none;">
      <td>
        <label id="lbl2"></label>
      </td>
    </tr>
  </table>
</div>

И следующий jquery, который устанавливает видимую строку и обновляет (но не удается) тег label с некоторым текстом.

var myStr = $(this).text();
var myArr = myStr.split(',');

$.each(myArr, function (i) {

  // This part works just fine
  var tr = $('#myDiv').find("#tr" + i);
  tr.css('display', 'inline');

  // The label is found, but I can't get jquery to update the text of
  // ...it no matter what I try
  var lbl = tr.find("lbl" + i);

  lbl.val('hello world'); // doesn't work
  lbl.text('hello world'); // doesn't work
  lbl.html('hello world'); // doesn't work

});

Так что я здесь не так делаю?

Ответы [ 4 ]

5 голосов
/ 22 августа 2011

попробуйте это ...

var lbl = tr.find("#lbl" + i);

Вы пытаетесь выбрать тег <lbl1/>, которого явно не существует

используйте #, чтобы указать идентификатор для поискадля.

1 голос
/ 22 августа 2011

Ошибка в этой строке:

var lbl = tr.find("#lbl" + i);

Вы забыли знак #, так как ищите по ID.

1 голос
/ 22 августа 2011

Вы ошибаетесь в отношении найденной метки, вам нужно использовать #, чтобы указать, что это идентификатор:

var lbl = tr.find("#lbl" + i);

Оба:

lbl.text('hello world');
lbl.html('hello world');

- это правильные способы задать текст метки, я предпочитаю .html(), поскольку он не анализирует строку из htmlspecialchars, это может быть немного быстрее.

0 голосов
/ 23 сентября 2015

Я наткнулся на эту тему, и, хотя она помогла направить меня в правильном направлении, я смог решить немного по-другому, как только нашел метку, установив свойство innerHTML в элементе метки.Я использовал jQuery.

var labels = document.getElementsByClassName('someclassname');

$(labels).each(function (index, element) {    
    element.innerHTML = 'hello world';
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...