我在使用 JQuery 选择正确的元素时遇到问题。 使用 javascript DOM 工作正常,但使用 JQuery 我似乎无法获得正确的元素...
这工作正常(“中”长度为 1,“小”长度为 0):
var medium = document.getElementById("Ribbon.Documents.WorkflowButtons.Workflow" + button + "-Medium");
var small = document.getElementById("Ribbon.Documents.WorkflowButtons.Workflow" + button + "-Small");
alert("Medium: " + jQuery(medium).length + " - Small: " + jQuery(small).length + " - State: " + workflowButtonState);
虽然这不起作用(两个长度都等于 0,这是不正确的):
var medium = jQuery("#Ribbon.Documents.WorkflowButtons.Workflow" + button + "-Medium");
var small = jQuery("#Ribbon.Documents.WorkflowButtons.Workflow" + button + "-Small");
alert("Medium: " + jQuery(medium).length + " - Small: " + jQuery(small).length + " - State: " + workflowButtonState);
另一个不起作用的示例是使用 .html()
工作(返回 html):
var button = document.getElementById("Ribbon.Documents.WorkflowButtons.Workflow" + buttonId + "-" + state);
$(button).css("display", "none");
alert($(button).html());
不工作(.html() 返回 NULL)
var button = $("#Ribbon.Documents.WorkflowButtons.Workflow" + buttonId + "-" + state);
$(button).css("display", "none");
alert($(button).html());
知道为什么会发生这种情况吗?我正在同一页面上执行此操作。所以相同的 HTML 元素等结果应该是相同的,不是吗?
我已验证“document.readyState”等于“完整”
PS:我使用了两种语法:jQuery 和 $。这是为了确保没有其他问题。
谢谢!
最佳答案
句点在 jQuery 中具有特殊含义。所以你需要用斜杠来转义它们。不幸的是,斜杠也是 Javascript 字符串的转义字符,因此您必须使用双斜杠:
jQuery("#Ribbon\\.Documents\\.WorkflowButtons\\.Workflow" + button + "-Medium");
关于javascript - JQuery 选择器不工作,而 javascript DOM 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347696/