当属性名称具有哈希时,Jquery ID选择器

Jquery ID selector when attribute name has a hash

本文关键字:Jquery ID 选择器 哈希时 属性      更新时间:2023-09-26

我遇到了一个问题,我们的内部框架有一个系统,如果你有一个表单&包含的元素他的名字以一个hash标签开始,它稍后处理这些元素时会做一些事情

例如:

<label width='auto' for='x_test' >Test:</label>
    <input type="checkbox" name="#x_test#" id="x_test" value="1"  />

现在使用Jquery,如果我想选择这个输入,例如隐藏它:

$( "#x_test" ).hide();

除非我从元素的名称中删除标签,否则这是不起作用的。但我正在按ID进行选择,我不知道为什么会出现这样的问题。

这是一个已知的问题吗;有什么我能做的吗?

我们在jquery-1.3.2 上

感谢

更新

感谢所有的提示,它帮了我一点忙,我确实从中学到了一些东西,但最终问题是其他人干扰了我的工作。

我们在每个步骤中都有一个向导,它将该页面的输入复制到该向导的隐藏动态表单中。

但他们也在复制id属性等,所以这不再尊重唯一id的规则。因为这个JQuery/JQueryUI和我所有的JavaScript都表现得非常奇怪。我最终重写了这个向导,这样我的JQuery等就可以工作了。

按属性选择:

$('[name="#x_test#"]').hide();

按id选择:

$('#x_test').hide();

$('[id="x_test"]').hide();

检查以下代码(使用jQuery 1.3.2)。

id选择应用绿色,而名称属性选择应用红色:

$('#test').css({'color':'green'});
$('[name="#test"]').css({'color':'red'});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="test">test id</div>
<div name="#test">name test</div>

使用属性等于选择器:

$("[name='#x_test#']").hide();

如果#的使用不适用于您的框架,请尝试将id名称附加到类,并在jQuery 中使用类选择器

即具有

<label width='auto' for='x_test' >Test:</label>
    <input type="checkbox" name="#x_test#" id="x_test" class="x_test"  value="1"  />

然后使用

$( ".x_test" ).hide();

这对我来说很好。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<label width='auto' for='x_test' >Test:</label>
<input type="checkbox" name="#x_test#" id="x_test" value="1"  />
<script>
    $(document).ready(function () { 
    $( "#x_test" ).hide();    
});
</script>

尝试以下

$("input[name='#x_test#']").hide();