为什么我的JavaScript不起作用
Why won't my javascript work?
这是我的javascript代码(反斜杠用于转义(:
<script type="text/javascript">
$(function(){
//datepicker
$(''#start'').datepicker({
inline: true
});
});
</script>
以及相关的 HTML:
<input type="text" name="start" id="start" class="hasDatepicker" />
它基本上与jquery和jquery ui附带的示例代码相同。我认为可能是所有内容都附加到一个名为 $content 的变量并在末尾回显出来,而不仅仅是 HTML。
我很欣赏这个难题的任何答案。
我也许应该更直观地了解我的代码是如何设置的,而不是在最后解释它。这通常是它的外观:
$content .= '<script type="text/javascript">
$(function(){
//datepicker
$(''#start'').datepicker({
inline: true
});
});
</script>';
我的 HTML 同样添加到$content:
$content .= '<input type="text" name="start" id="start" class="hasDatepicker" />';
你试过没有反斜杠吗?
<script type="text/javascript">
$(function(){
//datepicker
$('#start').datepicker({
inline: true
});
});
</script>
真的没有什么可逃避的
和:
您是否使用Firebug或任何其他Web调试工具?
对更新问题的回应
您的$content
变量将输出以下内容:
<script type="text/javascript">
$(function(){
//datepicker
$('#start').datepicker({
inline: true
});
});
</script>
这按原样工作(假设您的页面没有问题(:http://jsbin.com/oxekuw/2/edit
我鼓励您检查控制台输出(通常通过按 F12 访问(是否有任何有关$
或datepicker
方法未找到的消息。这表明他们在连接jQuery或jQuery UI时存在问题。
如果需要,请使用以下内容作为模板。如果您想在那里进行测试,也可以在线获得:http://jsbin.com/oxekuw/3/edit
<!DOCTYPE html>
<html>
<head>
<title>Datepicker</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" />
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.19/jquery-ui.js"></script>
<script type="text/javascript">
$(function(){
//datepicker
$('#start').datepicker({
inline: true
});
});
</script>
</head>
<body>
<input id="start" type="text" />
</body>
</html>
对原始问题的回答
当在由单引号封装的字符串中使用单引号时,您可以进行转义。不过你不会逃到这里:
$(''#start''); // No-no
检查您的控制台输出,您可能会看到以下内容:SyntaxError: Unexpected token ILLEGAL
不过,在选择器中有一个时间和地点可以转义字符。以下是您何时逃脱的示例:
$("input[name='"foo'"]"); // Little more sensible
请注意,双引号中的双引号。我们必须区分我们的内部和外部的,这样我们就不会过早终止字符串。
更好的解决方案是错开双引号/单引号。如果在外部使用双引号,请在内部使用单引号:
$("input[name='foo']"); // Much easier on the eyes
正如其他人所指出的,你的代码应该可以工作。
可能导致问题的一个常见问题是,您有多个具有相同 ID 的 HTML 元素 ( id="start"
(。
在创建输入元素之前运行 datepicker(( 代码?
- 为什么这个 .push 不起作用?(JavaScript)
- document.createelement不起作用(javascript)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- 如果语句不起作用 - JavaScript
- 为什么我的动态更改链接不起作用?(Javascript)
- RPS 函数不起作用(JavaScript)
- 计时器间隔不起作用 Javascript
- 通过返回 false - 不起作用(javascript)来阻止链接打开
- Eval 不起作用 - JavaScript
- Android 浏览器 .click() 不起作用 javascript
- 为什么这段代码不起作用?Javascript
- jsFiddle显示正确,但一旦在本地运行就不起作用(Javascript)
- 带有html的Navigator不起作用javascript
- 从文本文件中提取内容不起作用 JavaScript
- 从查询字符串中获取参数;不起作用..Javascript
- regex手机验证不起作用-javascript
- if和else语句不起作用(javascript)(html)
- 更改字体大小的复选框不起作用-Javascript
- 为什么这个基本的 if 语句不起作用?JavaScript
- Timer 不起作用/ JavaScript/ innerHTML null