我总是在javascript中看到写样式,但我不知道为什么这样的代码。 例如,我有一个变量。
var topic = "community";
当我学习javascript时,我看到有人用jQuery这样的代码编写了一些代码。
:contains("' + topic + '")
但我认为它可以像这样编码。
:contains(topic)
或者 :含有( “主题”)
以上三者之间有什么区别?
答案 0 :(得分:6)
:contains("topic")
搜索包含" topic"的元素串
其中
var topic = "community";
:contains(topic)
此处的主题变为"社区" ..因此它会搜索包含" community&#34 ;;
的元素很好的这个
:contains("' + topic + '")
我猜代码不完整..
$('div:contains("' + topic + '")')..; //div for example sake
这变成了
$('div:contains("community")')..; //<-- just to make sure the string is encoded with `""`
答案 1 :(得分:0)
:contains("' + topic + '")
将查找字符串'(主题的值)',包括单引号。
:contains(topic)
将查找主题的值,没有周围的引号。
:contains("topic")
将寻找字面上的主题。
答案 2 :(得分:0)
单引号和双引号之间没有区别,两者都用于将元素标记为字符串。
var s = "hello"
var m = 'hello'
m === s // true
另一个例子是指在以下情况下转义字符串:
contains("' + topic + '")
主题实际上引用了一个变量而不是一个字符串,因此必须对引号进行转义,以便程序能够访问变量的值。否则它不会读取变量主题的值,而只是打印字符串“topic”。
答案 3 :(得分:0)
单引号与双引号通常与字符串替换是否会发生有关,但在JS中,据我所知并不重要
3之间的区别在于第一个是变量赋值,其中可以发生字符串替换。第二个是传递一个字符串作为参数,第三个传递变量或常量主题
var topicOne = "Community1";
function write(toOutput) {
document.write(toOutput);
}
write(topicOne);
write("topicOne");
write('topicOne');
所以这是3将输出的内容:
Community1
topicOne
topicOne
在PHP中,相同的代码将采取不同的行为,因为双引号意味着字符串替换
<?php
$topicOne = "community1";
$topicTwo = "community2$topicOne";
function write($toOutput) {
print $toOutput;
}
write($topicOne);
write("$topicOne");
write('$topicOne');
write($topicTwo);
write("$topicTwo");
write('$topicTwo');
?>
会产生不同的输出
community1
community1
$topicOne
community2community1
community2community1
$topicTwo
看看差异在哪里?