我怎样才能在jQuery中使用包含'#'的ID选择器?

时间:2012-03-13 00:22:24

标签: javascript jquery

<div id="content">
<textarea id="#example-1">
</textarea>
<textarea id="#example-2">
</textarea>
</div>

和Jquery

var xyz = $("content##example-1").val();

此代码对我不起作用。它崩溃了 - 显示未定义。当我从textarea中删除div中的“#”和从JS代码中删除一个“#”时,它可以工作。它需要与id一起使用“#”。 我可以在引号后将变量放入$()吗? E.g:

$("content#"variable)

1 个答案:

答案 0 :(得分:4)

Escape the special character in the ID,删除content部分。由于element IDs must be unique,ID选择器最多匹配 一个元素。因此,除此之外的任何事情都是过分指定的。

var xyz = $("#\\#example-1").val();

更好的是,不要在ID中使用特殊字符:

<div id="content">
    <textarea id="example-1">
    </textarea>
    <textarea id="example-2">
    </textarea>
</div>
var xyz = $('#example-1').val();

  

$(“内容#”变量)怎么样?可能吗?是否存在处理它的可能性?

这不是有效的JavaScript;你需要使用字符串连接。此外,选择器'content'匹配标记名为content的元素,这不是您想要的。相信我:完全摆脱content部分。

然后使用我链接的jQuery FAQ中描述的jq函数。

var xyz = $(jq(variable)).val();