使用jQuery删除单选按钮
表单上有一组或多组单选按钮。该值可以以值^开始。一旦选择了另一个值,^将不再可用,因此需要隐藏它的div。以下是源代码和html,以及JSFIDLE中的链接: html使用jQuery删除单选按钮,jquery,asp.net,html,html-select,Jquery,Asp.net,Html,Html Select,表单上有一组或多组单选按钮。该值可以以值^开始。一旦选择了另一个值,^将不再可用,因此需要隐藏它的div。以下是源代码和html,以及JSFIDLE中的链接: html $ C0900A 员工asmt精神状态:回忆当前季节 (0)未选中(否) (1) 选中(是) (-)未评估 (^)空白(跳过模式) C0900B 员工asmt精神状态:回忆房间位置 (0)未选中(否) (1) 选中(是) (-)未评估 (^)空白(跳过模式) C0900C 员工asmt精神状态:回忆员工姓名/面孔 (0)未选中(
$
C0900A
员工asmt精神状态:回忆当前季节
(0)未选中(否)
(1) 选中(是)
(-)未评估
(^)空白(跳过模式)
C0900B
员工asmt精神状态:回忆房间位置
(0)未选中(否)
(1) 选中(是)
(-)未评估
(^)空白(跳过模式)
C0900C
员工asmt精神状态:回忆员工姓名/面孔
(0)未选中(否)
(1) 选中(是)
(-)未评估
(^)空白(跳过模式)
C0900D
员工asmt精神状态:在疗养院回忆
(0)未选中(否)
(1) 选中(是)
(-)未评估
(^)空白(跳过模式)
C0900Z
员工asmt精神状态:以上均未召回
(0)未选中(否)
(1) 选中(是)
(-)未评估
(^)空白(跳过模式)
它不起作用,因为一个页面上只能有一个id
。jQuery假定这一点,并且只选择一个单选按钮,因此永远不会找到任何值为“^”的单选按钮
只需将其更改为类,它就会工作(或者使用其他类型的标识,如名称
)
您也可以选择使用CSS选择器:
$("."+theClass+"[value='^']").parent().hide();
它不起作用,因为一个页面上只能有一个
id
。jQuery假定这一点,并且只选择一个单选按钮,因此永远不会找到任何值为“^”的单选按钮
只需将其更改为类,它就会工作(或者使用其他类型的标识,如名称
)
您也可以选择使用CSS选择器:
$("."+theClass+"[value='^']").parent().hide();
您的代码有各种各样的错误:
- 没有隐式
变量$this
- 没有
函数.id()
- 只要使用if语句,就不需要过滤使用id选择器选择的jquery对象
- 正如其他人指出的,DOM id必须是唯一的,所以如果我在代码中留下id选择器,它会选择错误的元素2/3李>
- 当当前元素为this时,无需在事件处理程序中重新选择当前元素
- 吹毛求疵:将jquery对象的变量前缀为
,以提高可读性$
我的代码糟透了,我给你留下的只是评论你的代码全坏了:
- 没有隐式
变量$this
- 没有
函数.id()
- 只要使用if语句,就不需要过滤使用id选择器选择的jquery对象
- 正如其他人指出的,DOM id必须是唯一的,所以如果我在代码中留下id选择器,它会选择错误的元素2/3李>
- 当当前元素为this时,无需在事件处理程序中重新选择当前元素
- 吹毛求疵:将jquery对象的变量前缀为
,以提高可读性$
我的代码糟透了,我给你留下的只是注释你肯定应该修复多个id问题,这是无效的HTML,可能会导致不希望的和意外的行为(正如其他人已经提到的) 但是,以下内容不使用按id选择,并且在更改任何其他同级时,将隐藏组中具有值=
^
的最后一个
:
$('.tristateRadio').bind('change', function() {
$(this).parent().siblings(':last').hide();
});
问题中的原始代码不起作用,因为
$this
未定义。我认为您的意思可能是$(this)
,以便在jQuery中包装本机对象。这些类型的错误通常显示在浏览器控制台或对话框中,并且是调试JavaScript时首先要查看的地方。您肯定应该解决多个id问题,这是无效的HTML,可能会导致不希望的和意外的行为(正如其他人已经提到的)
但是,以下内容不使用按id选择,并且在更改任何其他同级时,将隐藏组中具有值=^
的最后一个
:
$('.tristateRadio').bind('change', function() {
$(this).parent().siblings(':last').hide();
});
问题中的原始代码不起作用,因为
$this
未定义。我认为您的意思可能是$(this)
,以便在jQuery中包装本机对象。这些类型的错误通常显示在浏览器控制台或对话框中,并且是调试JavaScript时首先要查看的地方。您介意将其发布在JSFIDLE.net上吗?这与您的上一个问题不一样吗?()您的HTML无效。您的元素有多个重复的id,id属性应始终是唯一的。除此之外,请明确你的要求,这很难理解,我很乐意帮助你,干杯!Html验证程序:()不要得到意外的结果,然后责怪它不工作的浏览器,首先确保您的Html是有效的。您介意将此发布到JSFIDLE.net上吗?这与您的上一个问题类似吗?()您的HTML无效。您的元素有多个重复的id,id属性应始终是唯一的。除此之外,请明确你的要求,这很难理解,我很乐意帮助你,干杯!Html验证程序:()如果没有得到意外的结果,然后责怪它不工作的浏览器,请首先确保您的Html是有效的。“一旦选择了另一个值,^就不再可行,因此需要隐藏它的div。”-因为您不理解问题,因此,无法回答。我认为OP要求在您选择除^以外的选项时删除^。当你重新开始的时候就不会了
$('.tristateRadio').bind('change', function() {
$(this).parent().siblings(':last').hide();
});