2016-05-31 108 views
-4

类似jquery的一种新功能,无法在此上找到我的头。任何帮助将不胜感激。选择具有最高数据销售属性的选项

将检查的属性添加到具有最高数据属性的无线电输入。

一个。如果列表底部的无线电输入具有disabled =“disabled”属性,请选择第二个最高选项。

例如

<ul class="sales"> 
<li><input type="radio" data-sale="20"/></li> 
<li><input type="radio" data-sale="50"/></li> 
<li><input type="radio" data-sale="55"/></li> 
<li><input type="radio" checked="checked" data-sale="60"/></li><!--add checked attribute--> 
<li><input type="radio" disabled="disabled" data-sale="90"/></li> 

。如果禁用属性不在列表的底部,仍然检查最高的广播。

例如

<ul class="sales"> 
<li><input type="radio" data-sale="20"/></li> 
<li><input type="radio" data-sale="50"/></li> 
<li><input type="radio" disabled="disabled" data-sale="55"/></li> 
<li><input type="radio" data-sale="60"/></li> 
<li><input type="radio" checked="checked" data-sale="90"/></li><!--add checked attribute--> 

自然的HTML应用在列表中的第一个电台的检查。在这种情况下,数据销售= 20

我必须将该数据销售属性附加到一个容器跨度。

非常感谢您的帮助。

+2

谷歌检查你问这个问题之前....所以会帮你只有当你试图与袭击那... –

+2

请添加你试过的问题。 –

回答

1

我不确定它是否是您需要的,但是: 首先,使用与您的收音机按钮相同的名称来链接它们。

<ul class="sales"> 
    <li><input type="radio" name="rad" data-sale="20"/></li> 
    <li><input type="radio" name="rad" data-sale="50"/></li> 
    <li><input type="radio" name="rad" data-sale="55"/></li> 
    <li><input type="radio" name="rad" data-sale="80"/></li> 
    <li><input type="radio" name="rad" disabled="disabled" data-sale="90"/></li> 
    </ul> 
Result :<span id="result"></span> 

这里jQuery代码:

var max_ds = 0; 
    $.each($("input:radio"), function() { 
    var data_sale = $(this).attr("data-sale"); 
    if (!$(this).prop('disabled')) { 
     if (max_ds < data_sale) { 
      max_ds = data_sale; 
      $(this).attr("checked", true); 
      $("#result").empty().append(data_sale); 
     } 
    } 
    }) 

您可以在此JSFiddle

+0

感谢您的回复。基本上我有一个输入列表:收音机。无线电预先选择最低的数据销售,即20和一些无线电已禁用属性。它可能是一个或多个无线电具有禁用属性,并且数据销售值显示在span#结果中,我需要的是当页面加载而不是检查最低数据销售时,它将检查最高数据销售,在这种情况下是90.并且在更改时它将更新跨度#结果。你的解决方案看起来很有前途,我正试图实现这一点我的这种状况是什么意思? (!$(this).prop('disabled')) – delled

+0

(!$(this).prop('disabled'))=如果元素没有禁用该属性 –