当我写这段代码时:
<script type="text/javascript">
function showhide(master, detail) {
var src = $(master).children()[0].src;
if (src.endsWith("plus.png"))
src = src.replace('plus.png', 'minus.png');
else
src = src.replace('minus.png', 'plus.png');
$(master).children()[0].src = src;
$(detail).slideToggle("normal");
}
</script>
并在ScriptManager中引用jQuery库:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/scripts/jquery-1.4.1.min.js" ScriptMode="Release" />
</Scripts>
</asp:ScriptManager>
每件事都没问题。但是当我在代码上面提交并参考jQuery In head part:
<script src="scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
调试器提醒我endsWith
:Object doesn't support this property or method
为什么asp.net有这种行为?
感谢
答案 0 :(得分:2)
在你的代码的这一行:
if (src.endsWith("plus.png"))
您假设字符串对象有一个名为endsWith()
的方法,但标准的javascript没有这样的方法。有各种扩展将该方法添加到字符串对象(这是一个简单的写入),但你不能认为它存在,除非你专门将它添加到String对象原型。
除非两个配置中的一个配置了安装此扩展的库,否则我无法解释为什么它会工作。它不是jQuery的一部分。
这是一个关于添加endsWith()方法的早期SO问题:endsWith in JavaScript我碰巧喜欢这个讨论中的特定帖子:endsWith in JavaScript。
答案 1 :(得分:1)
检查jquery的路径是否正确。 ScriptReference路径是“〜/ scripts / jquery”(相对于应用程序根目录)但您的直接引用是“scripts / jquery”(相对于页面),这些路径可能会有所不同,具体取决于页面的位置。