Как выбрать значение Dynami c с помощью jQuery - PullRequest
0 голосов
/ 29 января 2020

У меня очень забавная ситуация, которую я не могу решить. У меня HTML вот так:

<div class="pp227">
  <span>Funny text</span>
</div>

Примечание: это pp может иметь значение от 0 - 500 , и эту структуру нужно сказать как есть. Я получаю jQuery код, подобный следующему:

var selectText = $('.pp[0] > span');

Может кто-нибудь иметь представление, как я могу выбрать это значение из pp

Ответы [ 4 ]

3 голосов
/ 29 января 2020

Вы можете выбрать элемент на основе одной части атрибута - в данном случае, начала класса.

Так что это будет работать:

[class^='pp'] > span

Также, чтобы получить фактический текст (в отличие от просто jQuery объекта, содержащего ссылку на выбранный элемент (ы), вам нужно использовать функцию .text().

Демо:

$(function() {
  var selectText = $("[class^='pp'] > span").text();
  console.log(selectText);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pp227">
  <span>Funny text</span>
</div>

Обратите внимание, что это предполагает, что у вас когда-либо есть только один элемент с классом, начинающимся с "pp" на странице за раз. Если нет, и вы хотите получить текст всех их, вам понадобится al oop. Вы действительно не уточнили это в вопросе.

См. https://api.jquery.com/attribute-starts-with-selector/ для получения дополнительной информации.

2 голосов
/ 29 января 2020

Вы можете использовать этот шаблон для выбора элементов и затем l oop через все, чтобы получить className & value, как это,

$("[class^=pp]").each(function(){
  let my_class = $(this).attr('class');
  console.log("Class > ",my_class," Val > ",$(this).find('span').html())
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pp227">
  <span>Funny text 1</span>
</div>
<div class="pp226">
  <span>Funny text 2</span>
</div>
<div class="pp225">
  <span>Funny text 3</span>
</div>
<div class="pp224">
  <span>Funny text 4</span>
</div>
0 голосов
/ 29 января 2020

Я предполагаю, что массив похож на var pp = [52,356,12,152,...,398];

var selectText = $('.'+pp[0]+' > span');

Javascript, допускает объединение значений string и int.

Объединение выполняется с + оператор.

0 голосов
/ 29 января 2020

Учитывая, что есть переменная с именем index, которая содержит число:

var myIndex = 117;

Вы делаете конкатенацию строк:

$('.pp' + +myIndex + ' > span')

ПРИМЕЧАНИЕ: унарный + оператор для принудительного применения интегрального значения и предотвращения jQuery инъекционных атак .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...