【发布时间】:2015-03-19 15:57:39
【问题描述】:
对网络东西有点菜鸟,但我有一个带有这个标签的 div:
<div class="" id=":1" role="treeitem" aria-selected="false" aria-expanded="false" aria-level="1" aria-labelledby=":1.label" aria-setsize="10" aria-posinset="1">
我已经测试过我的 jQuery 可以正常工作(目前使用的是 2.1.3 版)。 我已经测试了许多其他关于选择器中冒号的其他 SO 帖子中推荐的选择器,然后是其他一些。我已经分别尝试了下面的每个 jQuery 调用,但没有一个真正隐藏了我想要获取的元素。
$(function() {
$("#\\:1").hide();
$("#\:1").hide();
$(":1").hide();
$("\3A1").hide();
$("\3a1").hide();
$("\3A 1").hide();
$("\3a 1").hide();
$('[aria-labelledby="\\:1.label"]').hide();
$('[aria-labelledby="\\:1.label"] *').hide();
$(document.getElementById(":1")).hide();
$(document.getElementById("\:1")).hide();
});
要么什么都没有发生,要么我收到上述调用的语法错误。
顺便说一句,Chrome 说 CSS 路径是 '#\3a 1'。
编辑 这有效:
$(function() {
setTimeout(function() {
$("#\\:1").hide();
}, 1000);
});
我想问题是 div 没有实际加载或其他什么。这仍然是一个问题,因为上述解决方案由于显而易见的原因存在缺陷。我会向 Google Group 询问这个 API(它是块状的),并且可能有一个回调来说明它何时加载或什么的。
编辑
完全是菜鸟错误——我正在寻找的内容实际上是插入到一个 init 函数中的。这就是为什么在我通常调用我的 jQuery 时它不存在的原因;我需要把它放在这里:
init = function() {
Blockly.inject(document.getElementById('blocklyDiv'),
{toolbox: document.getElementById('toolbox')});
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace,
document.getElementById('startBlocks'));
$("#\\:1").hide();
}
【问题讨论】:
-
您的第一个示例 - 使用转义的
:- 工作正常:jsfiddle.net/RoryMcCrossan/14d3j4L6 您检查控制台是否有错误?该元素在 DOMReady 触发时可用,还是稍后附加? -
@RoryMcCrossan 现在我在控制台中运行它,它可以工作了。我想这意味着我在错误的时间调用它,但我想不出除了 document.onready 函数之外的任何东西
标签: jquery html css jquery-selectors css-selectors