javascript - radio 隐藏。改为显示 div 类。单击 div 选择链接的 radio

标签 javascript jquery css ajax

试图让这个工作。而不是显示普通 radio ,或用图像替换 radio 。我想用一个 div 替换它,我可以将其打扮成一个按钮,悬停时类发生变化,单击类发生变化。但也点击隐藏的 radio 被选中。但也要求标签(引用文本显示的标签,例如下面的 .co.uk .com .net 等)位于 div/按钮内。或者能够将文本添加到 div 按钮。这可能吗?

$(function() {
    $("input [name='domain_ext']").each(function() {
        if ($(this).prop('checked')) {
            $(this).hide();
            $(this).after($("< class='radioButtonOff' />"));
        } else { 
            $(this).hide();
            $(this).after($("<class='radioButtonOn' />"));
        }
    });

    $("input.radio").click(function() {
        if($(this).attr('src') == 'radiobuttonOn') {
            $(this).attr('src', 'radiobuttonOff');
            $(this).prev().attr('checked', 'false');
        } else { // its not checked, so check it
            $(this).attr('src', 'radioButtonOn');
            $(this).prev().attr('checked', 'true');
        }
    });
});

HTML

<table class="domain_ext_ribbon">
  <tr>
    <td><label>
      <input type="radio" name="domain_ext" value="all"  />
      All</label></td>
    <td><label>
      <input type="radio" name="domain_ext" value=".co.uk"  />
      .co.uk</label></td>
    <td><label>
      <input type="radio" name="domain_ext" value=".com" />
      .com</label></td>
  </tr>
  <tr>
    <td><label>
      <input type="radio" name="domain_ext" value=".net"  />
      .net</label></td>
    <td><label>
      <input type="radio" name="domain_ext" value=".org"  />
      .net</label></td>
    <td><label>
      <input type="radio" name="domain_ext" value=".biz" />
      .net</label></td> 
  </tr>
</table>

CSS

.radioButtonOff { width: 60px; height: 20px; background: #000000;}
.radioButtonHover { width: 60px; height: 20px; background: #666666;}
.radioButtonOn { width: 60px; height: 20px; background: #999999;}

最佳答案

看起来你的选择器有问题;您缺少属性过滤器周围的左大括号。所以

$("input name='domain_ext']")

应该是

$("input [name='domain_ext']")

此外,除非您专门使用 1.6 版的 jQuery,否则您的代码应该可以工作,但是,

if ($(this).prop('checked'))

是检查单选按钮是否被选中的首选方法,而不是

if ($(this).attr('checked'))

参见 this link获取更多信息。


当然还有这个

$(this).after($("<class='radioButtonOn' />"));

其实没有什么意义。我想你的意思是:

$(this).after($("<div class='radioButtonOff' />"));

关于javascript - radio 隐藏。改为显示 div 类。单击 div 选择链接的 radio ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15351672/

相关文章:

javascript - 安装 grunt 和 grunt cli 后找不到 grunt 命令

javascript - 给定两个连接的可排序 JQuery 列表,我如何知道元素被放置在哪个容器上?

javascript - jQuery onclick 事件不起作用

css - 将 Div 定位到页面的中心

html - 如何在CSS中为不同的标题(h1,h2,...)设置样式?

javascript - 单击图像上复制图像位置

javascript - 异步函数永不返回

javascript - 为什么 6.00 + (plus) 5.00 = "5.006.00"?

javascript - jQuery getJson 函数内填充的数组范围

javascript - 仅与 TypeScript 类型相关的属性?