#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()
селектора.
Я надеюсь, что это поможет!