繁体   English   中英

javascript DOM正常工作时,jQuery选择器不起作用

[英]JQuery selector not working while javascript DOM works fine

使用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”等于“ complete”

PS:我使用了两种语法:jQuery和$。 这是为了确保没有其他问题。

谢谢 !

句点在jQuery中具有特殊含义。 因此,您需要使用斜杠将其转义。 不幸的是,斜杠也是Javascript字符串的转义字符,因此您必须使用双斜杠:

jQuery("#Ribbon\\.Documents\\.WorkflowButtons\\.Workflow" + button + "-Medium");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM