Как я могу получить текст span с инкрементным идентификатором, используя jQuery? - PullRequest
2 голосов
/ 01 октября 2011

Простите, ребята, я изменил свой код на это:

<table border="1">
<?php
$a = array('apple','banana','grapes','pineapple');
for ($x=0;$x<=3;$x++)
{
?>
    <tr>
        <td><div class='fruit' ><?php echo $a[$x]; ?></div></td>
        <td><a href='#' class='viewbutton'>View</a></td>
    </tr>
<?php
}
?>    
</table>

Теперь моя проблема в том, как я могу получить текст внутри <div>? Я пробовал $(".viewbutton").click(function() { alert ( $('#div_debit').text() ); }); Это вернет только первое значение. Как я могу получить последующие значения в массиве? это использует идентификатор?

Ответы [ 2 ]

1 голос
/ 01 октября 2011

Насколько я знаю, нет никакого CSS или jQuery-специфичного селектора, который соответствовал бы всем числовым значениям (например, [0-9] или \d в регулярных выражениях); поправьте меня, если я ошибаюсь!

Но: поскольку вы даете каждому <span> класс "фрукты", вы можете просто получить к ним доступ с помощью span.fruit. Это вернет массив, который вы можете перебрать с помощью each(). this будет установлен на текущий элемент в этой функции, так что вы можете проверить желаемый идентификатор.

$('.fruit').each(function(){
    // this.id will be your numeric ID of the current item
});

Кроме того, если ваши элементы пронумерованы непрерывно (например, 1, 2, 3, а не 2, 1, 3), вы можете использовать :nth-child -pseudo-selector для доступа к одному из <span> s.

Если все это не работает для вас; например если вам нужно использовать класс .fruit где-то еще, последний вариант, о котором я могу подумать, это то, что вы вручную выполняете итерации по элементам в JavaScript.

for( var x = 0; x <= 3; x++ ) {
    var e = $('#'+x);
    // Do something with the element; or add it to an array of all the elements
}

Редактировать: Если вы не знаете, сколько элементов будет на странице, но хотите найти соответствие для каждого числового идентификатора, вы можете использовать следующее.

$('*').each(function(){
    if( this.id.match(/\d+/) ) {
        // do something with an element which has a numeric ID
    }
});

Конечно, предпочтительнее использовать приведенный выше пример, если вы знаете, сколько предметов будет, потому что он, вероятно, быстрее.

0 голосов
/ 01 октября 2011

Вы, наверное, ошибаетесь.Не используйте id в качестве числа, подобного этому, предпочитайте ставить хотя бы префикс.

Вы можете использовать $ ('span.fruit # 1'). Text (), чтобы получить первый текстовый диапазон.Если вы не указали идентификатор, вы можете использовать $ ('span.fruit: nth-child (1)'). Text ().

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