为什么将变量包含在'和'运营商?

时间:2014-11-11 20:40:24

标签: jquery

在下面的示例中,{和}运算符中包含search_name,以便将其作为变量而不是字符串读取?欢迎详尽解释。

$("#search").keyup(function(){
  var search_name = $(this).val();
  $("#names li:contains(' + search__name + ')").addClass("highlight");
});

1 个答案:

答案 0 :(得分:0)

(感动回答,但这只是一个扩展评论。)

首先,他们不是"和"运营商。并且是&&&。这是一个加号,用于添加和连接。

您在评论中显示的代码是正确的:

$("#names li:contains('" + search__name + "')")

这里有三个值:

  • "#names li:contains('"
  • search__name
  • "')"

他们被联系在一起,因为这是+在这种情况下所做的事情。

让我们说search__name包含值" John"。 jQuery选择器现在是:

$("#names li:contains('John')")

问题中的代码已损坏,因为只有一个值:

"#names li:contains(' + search__name + ')"

JS可以使用单引号或双引号,但开头和结尾引号必须匹配

这就是为什么你可以使用字符串"can't"'He said "Hello"'而不必转义引号。

如果你没有单引号字符串,那么后者将是"He said \"Hello\""