求和2个跨度元素中的两个值(用户可以通过下拉菜单选择每个跨度元素的值)

Sum two values from 2 span elements (the values for each span element can be selected by the user via dropdown)

本文关键字:元素 可以通过 下拉菜单 用户 选择 2个 求和 两个      更新时间:2023-09-26

我制作了两个表格。用户可以从每个表单中选择一个值(产品),然后将其价格显示在具有唯一类的单独元素中。当表单中的一个选项被选中时,其他选项将被隐藏。我做到了。现在,我似乎无法将这些元素的值求和到。以下是我为html:所做的工作

<div id="netpaketi-wrapper"> 
<strong><p class="textmain"><b>Изберете го Вашиот хостинг пакет</b>
</p></strong>
    <form class="hosting-biranje" action="">
        <select name="hosting">
        <option value="licen" class="ls" selected="selected">ЛИЧЕН СЕРВЕР</option>
        <option value="biznisl" class="bl">БИЗНИС L</option>
        <option value="xl" class="bxl">БИЗНИС XL</option>
        <option value="xxl" class="bxxl">БИЗНИС XXL</option>
        </select>
    </form>
    <div id="opis-paket">
        <div class="hosting-paket-opis licen-s">
            <p class="opisno">Windows/Linux</p>
            <p class="opisno">РАМ до 1GB</p>
            <p class="opisno">Процесор: Intel-core-I-7-4770</p>
            <p class="opisno">Bandwith 570 Mbits/s</p>
            <p class="opisno">Безбедност на податоците (SSL)</p>
            <p class="opisno">Бeсплатен домен</p>
            <p class="opisno">FTP пристап</p>
        </div>
        <div class="hosting-paket-opis server-l">
            <p class="opisno">Windows/Linux</p>
            <p class="opisno">РАМ до 2GB</p>
            <p class="opisno">Процесор: Intel-core-I-7-4770</p>
            <p class="opisno">Bandwith 570 Mbits/s</p>
            <p class="opisno">Безбедност на податоците (SSL)</p>
            <p class="opisno">Бeсплатен домен</p>
            <p class="opisno">FTP пристап</p>
        </div>
        <div class="hosting-paket-opis server-xl">
            <p class="opisno">Windows/Linux</p>
            <p class="opisno">РАМ до 4GB</p>
            <p class="opisno">Процесор: Intel-core-I-7-4770</p>
            <p class="opisno">Bandwith 570 Mbits/s</p>
            <p class="opisno">Безбедност на податоците (SSL)</p>
            <p class="opisno">Бeсплатен домен</p>
            <p class="opisno">FTP пристап</p>
        </div>
        <div class="hosting-paket-opis server-xxl">
            <p class="opisno">Windows/Linux</p>
            <p class="opisno">РАМ до 8GB</p>
            <p class="opisno">Процесор: Intel-core-I-7-4770</p>
            <p class="opisno">Bandwith 570 Mbits/s</p>
            <p class="opisno">Безбедност на податоците (SSL)</p>
            <p class="opisno">Бeсплатен домен</p>
            <p class="opisno">FTP пристап</p>
        </div>
        <p class="opisno">Цена: <span class="cena-hosting">1200</span> денари годишно</p>
    </div>  

这是第一个表单的html。第二个表单的html是:

<div id="netpaketi-wrapper"> 
<strong><p class="textmain"><b>Изберете го Вашиот вебсајт пакет</b>
</p></strong>
    <form class="vebsajt-biranje" action="">
        <select name="vebpaket">
        <option value="osnoven" class="vpo" selected="selected">ОСНОВЕН</option>
        <option value="e-mono" class="vpem">Е-МОНО</option>
        <option value="e-duo" class="vped">Е-ДУО</option>
        <option value="e-divers" class="vpedi">Е-ДИВЕРС</option>
        <option value="osnoven-market" class="vpmo">МАРКЕТ ОСНОВЕН</option>
        <option value="mono-market" class="vpmm">МАРКЕТ МОНО</option>
        <option value="duo-market" class="vpmd">МАРКЕТ ДУО</option>
        <option value="diverce-market" class="vpmdi">МАРКЕТ ДИВЕРС</option>
        </select>
    </form>
    <div id="opis-paket">
        <div class="vebsajt-paket-opis osnoven-paket">
            <p class="opisno">Сајт дизајниран од нас според Вашите потреби</p>
        </div>
        <div class="vebsajt-paket-opis e-mono-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чии страни ќе имаат сличен изглед и функции</p>
        </div>
        <div class="vebsajt-paket-opis e-duo-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чија почетна страна ќе се разликува од останатите страни во поглед на функции изглед</p>
        </div>
        <div class="vebsajt-paket-opis e-divers-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чии страни значително ќе се разликуваат  во поглед на функции и изглед</p>
        </div>
        <div class="vebsajt-paket-opis market-osnoven-paket">
            <p class="opisno">Сајт дизајниран од нас според Вашите потреби. Интегрирано е-плаќање</p>
        </div>
        <div class="vebsajt-paket-opis market-mono-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чии страни ќе имаат сличен изглед и функции. Интегрирано е-плаќање</p>
        </div>
        <div class="vebsajt-paket-opis market-duo-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чија почетна страна ќе се разликува од останатите страни во поглед на функции изглед. Интегрирано е-плаќање</p>
        </div>
        <div class="vebsajt-paket-opis market-divers-paket">
            <p class="opisno">Сајт дизајниран според Вашите желби и потреби чии страни значително ќе се разликуваат  во поглед на функции и изглед. Интегрирано е-плаќање</p>
        </div>
        <p class="opisno">Цена: <span class="cena-vebsajt">6000</span> денари</p>
    </div>  

应该显示总和的元素是:

<a href="#" class="g-btn type_primary"><span class="iznos"></span> денари</a>

这是html,这是用于隐藏/显示所选值的jQuery代码:

<script>
    var jq=$.noConflict();
    jq(document).ready(function(){
        jq(".ls").click(function(){
     jq(".licen-s").show();
     jq(".server-l, .server-xl, .server-xxl").hide();
     jQuery.removeData(".cena-hosting");
     jq(".cena-hosting").text("1200");
         });
         jq(".bl").click(function(){
     jq(".server-l").show();
     jq(".licen-s, .server-xl, .server-xxl").hide();
     jQuery.removeData(".cena-hosting");
     jq(".cena-hosting").text("2200");
         });
         jq(".bxl").click(function(){
     jq(".server-xl").show();
     jq(".server-l, .licen-s, .server-xxl").hide();
     jQuery.removeData(".cena-hosting");
     jq(".cena-hosting").text("2600");
         });
         jq(".bxxl").click(function(){
     jq(".server-xxl").show();
     jq(".server-l, .server-xl, .licen-s").hide();
     jQuery.removeData(".cena-hosting");
     jq(".cena-hosting").text("2900");
         });


         jq(".vpo").click(function(){
     jq(".osnoven-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .e-divers-paket, .market-osnoven-paket, .market-mono-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("6000");    
         });
         jq(".vpem").click(function(){
     jq(".e-mono-paket").show();
     jq(".osnoven-paket, .e-duo-paket, .e-divers-paket, .market-osnoven-paket, .market-mono-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("36000");
         });
         jq(".vped").click(function(){
     jq(".e-duo-paket").show();
     jq(".e-mono-paket, .osnoven-paket, .e-divers-paket, .market-osnoven-paket, .market-mono-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("56000");
         });
         jq(".vpedi").click(function(){
     jq(".e-divers-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .osnoven-paket, .market-osnoven-paket, .market-mono-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("66000");
         });             
         jq(".vpmo").click(function(){
     jq(".market-osnoven-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .e-divers-paket, .osnoven-paket, .osnoven-paket, .market-mono-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("26000");
         });
         jq(".vpmm").click(function(){
     jq(".market-mono-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .e-divers-paket, .market-osnoven-paket, .osnoven-paket, .market-duo-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("56000");       
         });
         jq(".vpmd").click(function(){
     jq(".market-duo-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .e-divers-paket, .market-osnoven-paket, .market-mono-paket, .osnoven-paket, .market-divers-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("86000");
         });
         jq(".vpmdi").click(function(){
     jq(".market-divers-paket").show();
     jq(".e-mono-paket, .e-duo-paket, .e-divers-paket, .market-osnoven-paket, .market-mono-paket, .market-duo-paket, .osnoven-paket").hide();
            jQuery.removeData(".cena-vebsajt");
        jq(".cena-vebsajt").text("160000");
         });
        });
</script>

前四块代码用于第一种形式,最后8块代码用于第二种形式。总的来说,我已经尝试了这个代码:

<script>
var jq=$.noConflict();
jq(document).ready(function(){
    var newprice = Number(text(".cena-vebsajt")) + Number(text(".cena-hosting"));
    jq('.iznos').append(newprice);
});
</script>

但我无法得到结果,它没有显示任何价值我也尝试过:

<script>
var jq=$.noConflict();
jq(document).ready(function(){
    var newprice = Number(.cena-vebsajt) + Number(".cena-hosting");
    jq('.iznos').append(newprice);
});
</script>

但是,同样没有结果。以下是该页面的链接:http://netarchitecture.de/mk/netpaketi.asp任何帮助都非常感谢

查看此JSFiddle:

http://jsfiddle.net/e3e4vhkj/

诀窍是根据你的数字使用parseFloat或parseInt。

var one=parseFloat($('.cena-vebsajt').text());
var two=parseFloat($('.cena-hosting').text());
var res=one+two;
$('.result').text(res);

但是,当您不确定跨度的文本是否可以是非数字时,请小心。例如,使用$.isNumeric。