jquery – 如何获取所有未选中的单选按钮

前端之家收集整理的这篇文章主要介绍了jquery – 如何获取所有未选中的单选按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,所以我有一个jQuery代码XML数据构建我的无线电输入,像这样:
  1. var items = xml.children('item');
  2. if (items.length > 0)
  3. {
  4. var ul = $('<ul/>',{
  5. class: 'priceList'
  6. });
  7. items.each(function(){
  8. var $this = $(this);
  9. var li = $('<li/>');
  10. var img = $('<img/>',{
  11. src: 'products/' + $this.children('image').text(),});
  12. var input = $('<input/>',{
  13. type: 'radio',id: $this.children('id').text(),name: 'products'
  14. });
  15. var span = $('<span/>',{
  16. text: $this.children('price').text() + ' USD'
  17. });
  18. var label = $('<label/>',{
  19. for: $this.children('id').text()
  20. });
  21. label.append(img);
  22. label.append("</br>");
  23. label.append(span);
  24. li.append(input);
  25. li.append(label);
  26. ul.hide().append(li).fadeIn('slow');
  27. });
  28. return ul;
  29. }
  30. return null;

现在,我需要一个很好的方法来找到所有未经检查的收音机标签,并与他们做某事,例如将它们淡出或更改css属性.由于XML列表由近40个项目组成,因此编写一个if-else结构是一个没有进行的事情.需要一个很好的解决方案.提前致谢!

编辑:看下面我的回答

解决方法

发现自己以上答案都不适用于我,这是奇怪的,因为大多数人应该是完全合法的.

我发现工作实际上是

  1. $('input[type="radio"]:not(:checked)')

在我的情况下,我需要

  1. $('li input[type="radio"]:not(:checked) + label')

整个代码是:

  1. //we'll need m for detecting a click outside of element with our radio buttons...
  2. var m = false;
  3. $(document).ready(function(){
  4. $.ajax({
  5. type: "GET",url: 'xml.xml',dataType: 'xml',success: function(data){
  6. var xml = $(data);
  7. $('#windowList').append( ItemToUl(xml.children()) );
  8. }
  9. });
  10. $('.calc').hover(function(){
  11. m=true;
  12. },function(){
  13. m=false;
  14. });
  15. $("body").mousedown(function(){
  16. if(! m) {
  17. //...and unchecking a checked radio. I heard that .attr() was deprecated but couldn't get .prop() to work
  18. $('li input[type="radio"]:checked').attr('checked',false);
  19. $('li input[type="radio"]:not(:checked) + label').fadeTo('slow',1);
  20. }
  21. });
  22. $("li input").live("change",function(){
  23. $('li input[type="radio"]:checked + label').fadeTo('slow',1);
  24. $('li input[type="radio"]:not(:checked) + label').fadeTo('slow',0.45);
  25. });
  26. });
  27.  
  28. //constructing function,etc...

猜你在找的jQuery相关文章