1

我正在尝试用javascript构建一个ROMI(营销投资回报计算器),如果有人能告诉我我做错了什么,我将不胜感激。我正在尝试从表单中获取一个值,将其传递给“leadGeneration”,然后使用下面的公式对其进行操作,然后将输出“msRomi”显示在文本框中。我想添加一个免责声明,我不是网络开发人员,我是营销分析师,所以对于任何无端错误或新手错误,我深表歉意。我环顾四周,根据来自这个站点和几个教程站点的资源,这个代码应该是有效的(它只是碰巧不是)你能告诉我我做错了什么和/或如何解决它?

var leadGeneration = $("leadGeneration");
var conversionTools = $("conversionTools");
var brandRecognition = $("brandRecognition");
var loyalityBuilding = $("loyalityBuilding");
var marketingSpending = $("marketingSpending");


var deltaLg = 375;
var deltaCt = 75;
var deltaBr = 93.75;
var deltaLb = 56.25;
var totalPms = 100000;

var msPercent = parseFloat(marketingSpending) / parseFloat(totalPms);

var lgromi= (((msPercent * (leadGeneration)) * parseFloat(deltaLg) * (2280) / ((parseFloat(msPercent) * (parseFloat(leadGeneration)))
var ctRomi= ((msPercent) * (conversionTools)) * parseFloat(deltaCt) * (2280) / ((parseFloat(msPercent) * (parseFloat(leadGeneration)))
var brRomi= ((msPercent) * (brandRecognition)) * parseFloat(deltaBr) * (2280) / ((parseFloat(msPercent) * (parseFloat(leadGeneration)))
var lbRomi= ((msPercent) * (loyalityBuilding)) * parseFloat(deltaLb) * (2280) / ((parseFloat(msPercent) * (parseFloat(leadGeneration)))

var msRomi= parseFloat(lgRomi) + parseFloat(ctRomi) + parseFloat(brRomi) + parseFloat(lbRomi)

HTML

<div class="marketingSpending" style="align: center">Marketing Spending:</div>
<input type="range" name="marketingSpending" min="5000" max="100000" step="1000" style="width: 70px">
</div>


<div class="inputForm" id="calcValues" style="align: right">
<form id="romiForm">

<div class="percentName" style="align: left">Lead Generation:</div>
<form action="" class="percentSelection">
<select name="leadGeneration" id="leadGeneration">
<option value="10" selected>10%</option>
<option value="20">20%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="60">60%</option>
<option value="70">70%</option>
<option value="80">80%</option>
<option value="90">90%</option>
<option value="100">100%</option>
</select>
</form>

<div class="percentName" style="align: right">Conversion Tools:</div>
<form action="" class="percentSelection">
<select name="conversionTools" id="conversionTools">
<option value="10" selected>10%</option>
<option value="20">20%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="60">60%</option>
<option value="70">70%</option>
<option value="80">80%</option>
<option value="90">90%</option>
<option value="100">100%</option>
</select>
</form>

<div class="percentName">Brand Recognition:</div>
<form action="" class="percentSelection">
<select name="brandRecognition" id="brandRecognition">
<option value="10" selected>10%</option>
<option value="20">20%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="60">60%</option>
<option value="70">70%</option>
<option value="80">80%</option>
<option value="90">90%</option>
<option value="100">100%</option>
</select>
</form>

<div class="percentName">Customer Loyalty:</div>
<form action="" class="percentSelection">
<select name="customerLoyalty" id="customerLoyalty">
<option value="10" selected>10%</option>
<option value="20">20%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="60">60%</option>
<option value="70">70%</option>
<option value="80">80%</option>
<option value="90">90%</option>
<option value="100">100%</option>
</select>
</form>


</form>
</div>
4

1 回答 1

5

您的元素必须由id或选择class。如果不查看您的 HTML,我不确定它需要是哪个,但我猜想id

var leadGeneration = $("#leadGeneration"); ...

注意#表示元素的id属性。此外,@bfavaretto 的评论是正确的,我们正在创建的这些 jQuery 对象包含的内容远远超过其内容的价值,因此我们无法对它们进行常规数学运算。从这些对象中提取值的示例如下:

var leadGenerationVal = leadGeneration.val()

或者,如果您不想对页面上的对象执行任何其他操作,我们可以在创建 jQuery 对象的同一行提取值:

var leadGeneration = $("#leadGeneration").val();

以上面的代码行为例,您应该能够使脚本的其余部分正常工作。

于 2013-02-15T22:12:26.080 回答