使用jquery查找具有动态名称的元素 - 引用问题

时间:2011-03-09 10:55:56

标签: javascript jquery escaping

我正在根据选择框中的选项值来搜索我的DOM。

“searchkey”可以是不同的东西,具体取决于用户输入的内容,例如:

  • searchkey = dell'anno
  • searcheky = dell“anno

由于引用,这些选项(在本例中为第一个)将破坏我的代码。是否有一种原生的jQuery方法来解决这个问题?

.uiDialog.find("#var_variantnew_options option[value='"+searchkey+"']")).html()

3 个答案:

答案 0 :(得分:4)

您需要转义'字符,如下所示:\'

这可以按如下方式自动完成:

"foo'bar'baz".replace(/'/g, "\\'"); // "foo\'bar\'baz"

完整的代码段将是:

.uiDialog.find("#var_variantnew_options option[value='" + searchkey.replace(/'/g, "\\'") + "']")).html()

答案 1 :(得分:2)

jQuery为您提供了几种执行相同操作的方法。当然,你可以像Mathias建议的那样逃脱,它的确有效。但有时候走一条不同的路线需要的时间更少。就像使用过滤功能一样:

.UiDialog.find("#var_variantnew_options option").filter(function () {
  return this.value==searchkey;
}).html();

答案 2 :(得分:0)