У меня есть функция, чтобы сократить некоторые слова, когда этикетка обертывается (чтобы приспособиться к различным разрешениям). Моя функция работает, но я думаю, что ее можно упростить ... просто я не знаю, как это сделать. Поскольку я добавляю больше слов здесь, повторение может быстро выйти из-под контроля. Могу ли я поместить длинные слова/короткие слова в массив и передать все сразу или что-то еще? Я не мог заставить скрипку работать (хотя она работает над моим проектом), но здесь вы идете. http://jsfiddle.net/wucd1mws/1/ Спасибо заранее!Упростить рабочую функцию для замены определенных слов?
if ($('label').height() > 20) {
alert('Text wrapped');
var numtext = $('label:contains("Number")')
if (numtext) {
numtext.each(function() {
$(this).html($(this).text().replace('Number', '#'));
});
}
var pertext = $('label:contains("Percent")')
if (pertext) {
pertext.each(function() {
$(this).html($(this).text().replace('Percent', '%'));
});
}
var invtext = $('label:contains("Invoice")')
if (invtext) {
invtext.each(function() {
$(this).html($(this).text().replace('Invoice', 'Inv'));
});
}
// etc...
}
Я думал, что это, скорее всего, первый шаг, чтобы сократить функцию ... теперь кормить в длинных/коротких пар слов.
if ($('label').height() > 32) {
var long = "Number";
var short = "#";
var labelwrap = $('label:contains('+ long +')')
if (labelwrap) {
labelwrap.each(function() {
$(this).html($(this).text().replace(long, short));
});
}
}
Вы только что сказали "* повторение *" ?! Я слышал «цикл» ... – Bergi
Пример, пожалуйста? – triplethreat77
Ну, вы только что отредактировали тело этого цикла на свой вопрос. Теперь вам просто нужно перебрать структуру 'long'-'short' (будь то массив массивов или простой объект с ключом) – Bergi