在构建选择器时,我希望有一个空间来指示要在由两个类定义的元素中找到一个类。我确信我在其他地方使用过这种语法。
但这次我得到:
错误:语法错误,无法识别的表达式:" [Break On This Error] throw new Error("
语法错误,无法识别的表达式:" + msg );
这是选择器:
tag = $(".m_3.current_Status .smoothie_Text").prop("tagName");
如果我删除 .smoothie_Text 之前的空格,语法错误就会消失,但显然标签是未定义的,因为它找不到。
编辑
<td class="m_1 current_Status" style="background-color: rgb(255, 127, 0); color: rgb(255, 255, 255);">
<div class="smoothie hasSVG">
<input class="smoothie_Text" type="hidden" value="Super Power">
<svg version="1.1" stroke-width="0.501" stroke-linejoin="bevel" fill-rule="evenodd" overflow="visible" width="10" height="10" viewBox="0 0 236.25 225">
</div>
</td>
*编辑 - 解决方案(#2 缩短)*
注意 - 最后我没有使用逗号分隔的方法。我不能确定为什么以前尝试在由空格分隔的类组中失败,但是,我怀疑提交的选择是用引号引起来的。
$(".smoothie").on("mouseover", function(event) {
var containerElements = $(event.target).parentsUntil($("tr").parent())
.map(function () {
return this.className;
})
.get().join(",");
containerArray = containerElements.split(",");
row_Class = containerArray.pop();
row_Classes = row_Class.split(" ");
container_Class = containerArray.pop();
container_Classes = container_Class.split(" ");
var offset = $(event.target).offset();
value = $("." + row_Classes[0] + "." + row_Classes[1] + " ." + container_Classes[0] + "." + container_Classes[1] + " .smoothie_Text").attr("value");
$("#flavour_Text").html("<a>" + value + "</a>");
$("#flavour_Text").css("top", offset.top);
$("#flavour_Text").css("left", offset.left);
$("#flavour_Text").css("width", (value.length * 0.6) + "em")
$("#flavour_Text").css("display","block");
// this dsiplays all. Needs refinement
}).svg({loadURL: '../_public/_icons/smoothie.svg'});
$(".smoothie").on("mouseout", function(event) {
$("#flavour_Text").html("");
$("#flavour_Text").css("display","none");
}).svg({loadURL: '../_public/_icons/smoothie.svg'});