jquery 如何按值隐藏复选框标签?

fruv7luv  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(163)

有2个相同的代码块:
第一个
它们仅在标注分类chkpositivechknegative的名称以及输入名称上有所不同
他们负责显示在选择胶片过程中必须放置的标签。我需要这样做,当按下标签从块chkpositive时,与块chknegative中的相同值的标签消失。反之亦然,当按下标签从块chknegative时,从chkpositive中消失相同的标签。例如,通过方法“切换”。
我想用javascript和jQuery来做这个,但是还没有成功。这个问题能有一个简单的解决方案吗?
12个小时找到一个解决方案,尝试许多代码,看到与谷歌类似,但没有找到.得出的结论是,我需要类似的东西,但工作:

$(function() {
    $(".chkpositive input").click(function(event) {
        var x = $(this).is(':checked').value;
        if (x == true) {
            $(this).value.(".chknegative").hide();
        } else {
            $(this).value.(".chknegative").show();
        }
    });
  });

$(function() {
    $(".chknegative input").click(function(event) {
        var x = $(this).is(':checked').value;
        if (x == true) {
            $(this).value.(".chkpositive ").hide();
        } else {
            $(this).value.(".chkpositive ").show();
        }
    });
  });
fhity93d

fhity93d1#

你的想法是对的。

$(this).is(':checked')

返回一个布尔值,因此没有.value,并且

$(this).value.(".chknegative").hide()

应当公正

$(".chknegative").hide()

对于隐藏/显示,if (isTrue) hide else show可替换为单个toggle(isTrue)
赠送:
第一个
现在,我们不清楚是只有一对正/负,还是它们在行中/多个值中。

$(this).closest("wrapper").find(".chknegative")`

而不是$(".chknegative")$(".chknegative")将在所有行中找到所有这些值。
更新了多个+ve/-ve对的代码段:
第一个
(be请确保不要复制任何ID)

编辑

如果有多个,可以使用name属性进行匹配,例如:

$(".chknegative[name=" + this.value + "])"

比如说:

$(".chknegative[value='" + $(this).attr("value") + "']").toggle(!$(this).is(':checked'))

在这种情况下,您可能还需要选中相关的+ve(或-ve)复选框。
例如,如果您有3 +ves和3 -ves的“valueX”,并勾选任何+ves,则隐藏3 -ves,并勾选其余2 +ves,例如:

// when positive clicked
$(".chkpositive input").click(function(event) {

  // show/hide negatives
  $(".chknegative[value='" + $(this).attr("value") + "']").toggle(!$(this).is(':checked'))

  // also tick/untick matching positives
  $(".chkpositive[value='" + $(this).attr("value") + "']").prop("checked", $(this).is(':checked'))
});

相关问题