构建选择器时,如果包含空格,则会出错

时间:2012-12-05 16:14:40

标签: javascript jquery

构建选择器时,我希望有一个空格来指示在由两个类定义的元素中找到一个类。我确信我在其他地方使用过这种语法。

但是在这个场合我得到了:

  

错误:语法错误,无法识别的表达式:“[Break On此错误]抛出新错误(”   语法错误,无法识别的表达式:“+ 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'});  

0 个答案:

没有答案