无法完成数据集的数值

时间:2019-02-14 04:18:34

标签: javascript html arrays html5 webpage

<select class="license_type" name="license_type" id="license_type">
    <option value="l_one" data-one="500">License 1</option>
    <option value="l_two" data-two="700">License 2</option>
    <option value="l_three" data-three="1400">License 3</option>
</select>

这些500、700、1400稍后将通过PHP编程实现。因此,我的目标是通过数据集在JS中获取它们。

我写的JS函数是:

  function someFunction() {
    var vOne= document.getElementById("license_type");
    var vTow = vOne.options;
    var c1 = vTow.dataset.one;
    var c2 = vTow.dataset.two;
    var c3 = vTow.dataset.three;  
}

然后再使用另一个JS,而不是像这样的硬编码价格:

  var prices = [500, 700, 1400];

这:

  var prices = ['c1', 'c2', 'c3'];

但这会生成NAN,这意味着c1,c2,c3没有数值。 解决方法是什么?

3 个答案:

答案 0 :(得分:1)

在您的代码中,它似乎具有三个静态选项,因此请考虑使用下面的代码。

function someFunction() {
    var license_type= document.getElementById("license_type");
    var c1 = license_type.options[0].getAttribute('data-one');
    var c2 = license_type.options[1].getAttribute('data-two');
    var c3 = license_type.options[2].getAttribute('data-three');
    var prices = [c1, c2, c3];
    console.log(prices)
}

但是,如果这些选项是动态的,那么您将不得不遍历这些选项。

答案 1 :(得分:0)

您应该使用L=10; x=linspace(0,L,30); t1= 50; X=30; p=1 c=t1/1000; V=zeros(X,t1); V(1,:)=0; V(30,:)=0; R=((4*p*L^3)/c); n=1; t=1:50; while n < 10 for i=1:31 for j=1:50 V(i,j)=R*sum((1-(-1)^n)/(n^4 *pi^4)*sin((n*pi*c*j)/L)*sin((n*pi*i)/L)); end end n=n+1; end figure(1) plot(V(i,j),t) getAttribute。还要遍历这些选项,并像这样使用解构:

parseInt

答案 2 :(得分:0)

首先,我将使用querySelectorAll()获取目标选择的所有选项。然后,我将使用Array::map()将所有选项映射到他的data-*属性。请注意,我必须从data-*属性中获取value属性名称的第二部分,因为data-*属性似乎与value属性相关(不是统一名称):

var prices;

function someFunction()
{
    var opts = document.querySelectorAll("#license_type option");

    prices = Object.values(opts).map(o =>
    {
        let token = o.getAttribute("value").match(/l_(\w+)/)[1];
        return o.getAttribute("data-" + token);        
    });

    console.log(prices);
}

someFunction();
<select class="license_type" name="license_type" id="license_type">
    <option value="l_one" data-one="500">License 1</option>
    <option value="l_two" data-two="700">License 2</option>
    <option value="l_three" data-three="1400">License 3</option>
</select>