当参数包含无效字符时,jquery find失败

时间:2014-10-09 14:53:29

标签: javascript jquery

我正在使用jquery。如果我有一个看起来像这样的div:

<div class="container" title="Mark">

我跑:

find('div.container["title=Mark"]');

然后它的工作原理。这意味着,找到了元素。

但是,如果我有另一个看起来像这样的div:

<div class="container" title="Mark Person">
然后它不起作用。这意味着:找不到元素,jquery给出异常:

Error, Syntax Error: unrecognized expression.

似乎当“title”是一个没有空格或其他字符如斜线的字符串时,它就可以了。在其他情况下,jquery不理解该标记。 有没有办法避免在我的代码中改变它(这是很多变化)并使find-function与这些元素一起工作?

1 个答案:

答案 0 :(得分:2)

你的"标记在错误的位置。将它们放在值:

附近

var mp = $(document).find('[title="Mark Person"]');

mp.css('font-weight', 'bold');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container" title="Mark Person">should be bold</div>
<div class="container" title="Mark">should not be bold</div>