Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向上遍历DOM以选择单选按钮输入中包装的标签(Drupal公开的过滤器)_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 向上遍历DOM以选择单选按钮输入中包装的标签(Drupal公开的过滤器)

Javascript 向上遍历DOM以选择单选按钮输入中包装的标签(Drupal公开的过滤器),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在Drupal中使用了一个暴露的filter单选按钮,我注意到html结构使得在选中标签时很难选择要更改的标签 如果先输入html结构,然后是标签,那么选择带有“input[type=radio]:checked+label”的标签是没有问题的,但是标签环绕着输入 if(jQuery(“输入[type=radio]:选中”)){ jQuery(“输入[type=radio]:选中。控件标签”).css(“字体重量”,“粗体”); } 全选 选择1 选择2 如果您希望在选择时将最接近所选收音

我在Drupal中使用了一个暴露的filter单选按钮,我注意到html结构使得在选中标签时很难选择要更改的标签

如果先输入html结构,然后是标签,那么选择带有“input[type=radio]:checked+label”的标签是没有问题的,但是标签环绕着输入

if(jQuery(“输入[type=radio]:选中”)){
jQuery(“输入[type=radio]:选中。控件标签”).css(“字体重量”,“粗体”);
}

全选
选择1
选择2

如果您希望在选择时将最接近所选收音机的标签设为粗体,则需要向输入本身添加事件处理程序。然后,在添加类之前,可以使用
closest()
获取
标签。还要注意,您还需要从其他标签中删除该类。试试这个:

$('.bef选择为收音机')。更改(函数(){
$('label').removeClass('active');
$(this).closest('label').addClass('active');
}).filter(':checked').change()
label.active{
字体大小:粗体;
}

全选
选择1
选择2

这里是另一种方法。我在这方面得到了一些帮助

jQuery("input[name=tid]").on("change", function(e){
      jQuery("#edit-tid").find("label").css("font-weight", "normal");
      jQuery(this).closest("label").css("font-weight", "bold")
});

工作起来很有魅力

您的逻辑有缺陷,因为
if
语句将jQuery对象强制为布尔值,这将始终导致
true
。你在什么情况下运行这段代码?@Rorymcrossan,老实说,我不知道。它是drupal中一个更好的暴露过滤器单选按钮。我不认为单选按钮有任何活动。好吧,那么更好的问题是,你想实现什么?我假设您希望将所选单选按钮旁边的标签加粗,是吗?是的,加粗标签取决于是否选中。drupal将标签包装在输入上的方式让我认为结构是错误的。不,标签结构没有任何问题。我在下面为您添加了一个答案。id是因为我从控制台代码复制粘贴的。他们在网站上有不同的id。我会在网站上试一试。我想我有太多其他的事情要做,这是不可行的。所以我会继续尝试,但我明白了要点。