Функция пользовательской операции - PullRequest
2 голосов
/ 11 ноября 2011

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

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

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', но я не знаю, как это изменить.

Здесьэто демо

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

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

1 голос
/ 11 ноября 2011

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

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

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

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

0 голосов
/ 11 ноября 2011

Взгляните на плагин jQuery Calculations здесь .

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

Надеюсь, это поможет!

...