Пользовательская функция управления

#jquery #html #function #javascript

#jquery #HTML #функция #javascript

Вопрос:

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

Моя действительно простая функция:

 function op2(id, end){
      var he = $(id).text();
      $(end).html(he);
}
  

Это можно было бы использовать следующим образом:

 function la() {
op2('#default', '#here');
}
  

Со следующим html:

 <div id="default">10 3</div>
<div onclick="la();">Test</div>
<div id="here"></div>
  

Это проблема, когда предполагается, что для добавления все, что он делает, это добавляет 10 3 к элементу #here вместо отображения 13 .

Я знаю, что проблема в том, что браузер добавляет текст #default к #here вот так, '10 3' но я не знаю, как это изменить.

Вот демо

Комментарии:

1. Вы должны написать свой собственный код, чтобы изучить .text() результат, найти в нем математические выражения, оценить эти выражения и поместить полученный текст в выходные данные. jQuery не выполняет эту часть за вас.

Ответ №1:

Для этого простого случая используйте функцию eval() для содержимого первого элемента. Смотрите ссылку для получения измененной версии:http://jsfiddle.net/4DF3k /

Ответ №2:

Ваша проблема в том, что тип данных ваших переменных — String, а не Integer. Если вы хотите использовать в качестве арифметической операции вместо операции добавления строки, вы должны преобразовать вашу переменную в целое число или с плавающей точкой

http://www.javascripter.net/faq/convert2.htm#parseInt

Эта ссылка расскажет вам больше об этом.

Просто используйте функции Javascript parseInt и parseFloat

Ответ №3:

Взгляните на плагин вычислений jQuery здесь.

Для более сложных математических уравнений и различных операций это должно дать вам хорошую отправную точку для оценки $.text() селектора.

Я надеюсь, что это поможет!