уменьшить подробный JQuery, если еще заявление

0

У меня есть этот код jquery, который в зависимости от того, какая кнопка нажата, дает переменной a и b разные значения, которые затем обертывают текст и предупреждают об этом

$(document).ready(function () {
    $("button").click(function () {
        "andromeda" == this.id ? (a='<‡¦>',b='</‡¦>') 
        : "milkway" == this.id ? (a='<¬>',b='</¬>') 
        : "alien-alpha" == this.id ? (a='<¬y>',b='</¬y>')
        : "galax" == this.id ? (a='<y×>',b='</y×>')
        : "grainlang" == this.id ? (a='<y×>',b='</y×>')
        ...
        : '';
        alert(a + 'put here the text to translate into our language. each one corresponds to a different alien dialect' + b);
      });
  });

и html

<button type="button" id="andromeda">‡¦</button>
<button type="button" id="milkway">¬</button>
<button type="button" id="alien-alpha">¬y</button>
<button type="button" id="galax">y×</button>
<button type="button" id="grainlang">y‡‡</button>
...

в отношении этой части, как бы вы втиснули это как можно меньше места? У меня 2120 из них определены так, что занимаемое пространство огромно.. возможно ли определить словарь или массив и разумно преобразовать их по мере необходимости, чтобы уменьшить пространство?

"andromeda" == this.id ? (a='<‡¦>',b='</‡¦>') 
            : "milkway" == this.id ? (a='<¬>',b='</¬>') 
            : "alien-alpha" == this.id ? (a='<¬y>',b='</¬y>')
            : "galax" == this.id ? (a='<y×>',b='</y×>')
            : "grainlang" == this.id ? (a='<y×>',b='</y×>')
            ...
            : '';

скрипка http://jsfiddle.net/jFnYx/

  • 0
    Почему бы просто: jsfiddle.net/jFnYx/3 ???
  • 0
    @A.WolffA.Wolff Было бы хорошо, но в какой-то момент есть некоторые нетрадиционные и разные символы, например, в строке 25 есть <button type="button" id="sumerlang">y‡×‡</button> которые при нажатии должны заключать текст в *| the text here |*
Показать ещё 3 комментария
Теги:
if-statement

1 ответ

0
Лучший ответ

Я думаю, что что-то вроде этого, было бы полезно сохранить некоторые строки кода в файле js.

  $("button").click(function () {        
    var a = '<'+this.innerHTML+'>';
    var b = '</'+this.innerHTML+'>';

    alert(a + 'put here the text to translate into our language. each one corresponds to a different alien dialect' + b);
  });

Если вы хотите уменьшить html до. Я рекомендовал вам динамически генерировать кнопки. Вы можете создать массив следующим образом:

var array = new Array();
array['andromeda'] = '‡¦';
array['milkway'] = '¬';
array['alien-alpha'] = '¬y';
...

а затем итерации для создания кнопок и добавления их в html.

  • 0
    Я нашел компромисс между вашим решением и решением Wolf, но спасибо :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню