我遇到了一个问题,我们的内部框架有一个系统,如果你有一个表单&包含的元素他的名字以一个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();