2015-02-27 2 views
-2

У меня есть следующий элемент <td>, который отображает данные, полученные из базы данных, для отображения последователей, которые есть у исполнителя.Функция Javascript в td-элементе с параметром прохождения

<td> 
    <span id="followers"> 
     <? echo empty($artist['Artist']['followers']) ? 'N/A' : number_format($artist['Artist']['followers']);?> 
    </span> 
</td> 

Есть некоторые значения, которые являются очень большими и идут до 6 цифр. Я хочу написать функцию Javascript, которая примет подстроку и отобразит только первые 3 цифры.

Как я могу написать функцию и передать параметр в качестве значения: $artist['Artist']['followers']

Я могу сделать это в PHP, но мне нужно сделать это в JavaScript.

+0

Я хочу использовать метод подстроки, потому что в других elemnts У меня есть большие строки, что мне нужно укоротить с помощью тот же метод – tr88

+0

Это может помочь, http://stackoverflow.com/questions/7708819/keep-only-first-n-characters-in-a-string –

ответ

0

метод укорочение (может пройти индексы добычи как Params):

/* USAGE: 
str - string to truncate; 
start - start index, character position in the string, from which the string should start. Deafault: 0; 
end - end index, character position in the string, at which the string should end. Deafault: 3; 
*/ 

function shorten(str, start, end){ 
    // use .trim() to remove whitespaces from the string 
    return str.trim().substring((start !== undefined ? start : 0),(end !== undefined ? end : 3)); 
} 

Таким образом, вы можете сократить текст внутри <span> каждого <td> элемента на странице с помощью чистого Javascript:

var td = document.getElementsByTagName('td'); 
// loop through the <td> elements: 
for(var i=0; i<td.length; i++){ 
    // find <span> element inside <td>: 
    var el = td[i].querySelector('span'); 
    // extract <span> text and truncate. Using default start and end indexes in the function: 
    el.innerText = shorten(el.innerText); 
    // Using custom start and end indexes (5 characters. Start at 0, end at 5'th character): 
    //el.innerText = shorten(el.innerText, 0, 5); 
} 

DEMO

или с использованием jQuery:

$('td span').each(function(){ 
    $(this).text(shorten($(this).text())); 
}); 

DEMO

ПРИМЕЧАНИЕ: Убедитесь, что каждый <span> элемента имеет уникальногоid

Смежные вопросы