1

我在使用 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 和 $。这是为了确保没有其他问题。

谢谢 !

4

1 回答 1

1

句点在 jQuery 中具有特殊的含义。所以你需要用斜线来逃避它们。不幸的是,斜线也是 Javascript 字符串的转义字符,因此您必须使用双斜线:

jQuery("#Ribbon\\.Documents\\.WorkflowButtons\\.Workflow" + button + "-Medium");
于 2012-09-10T08:36:17.457 回答