gpt4 book ai didi

javascript - 如何将虚拟 jQuery 对象传递给 Javascript 函数

转载 作者:行者123 更新时间:2023-11-28 14:05:23 25 4
gpt4 key购买 nike

我有一个 javascript 函数,在大多数情况下,需要对我传递给它的 jQuery 对象执行某些操作。有一个异常(exception),该函数不需要 jQuery 对象,但因为我编写它来接受字符串(命令)和 jQuery 对象,所以当我调用它时,我需要一些东西来传递它。我的功能如下:

function handleNotes(command, $item) {

var $textArea = $('#textarea_' + currentDialog); // currentDialog = global var
var $notesDiv = $('#' + $item.attr('id') + "_notes");

switch (command) {
case "show":
// do something with $notesDiv and $textArea
break;
case "hide":
// do something with $notesDiv and $textArea
});
break;
case "hide only":
// do something with $textArea only
}
}

我遇到问题的函数调用是:

handleNotes("hide only");

我尝试过handleNotes("hide only", null),并且尝试过handleNotes("hide only", Object)但没有成功。有什么想法吗?

谢谢。

更新

正如很多人回答的那样,事实证明我没有测试 $item 是否为空,因此它每次都尝试设置为某些内容(无论是否将对象传递给它)。我将函数代码更改为:

function handleNotes(command, $item) {

var $textArea = $('#textarea_' + currentDialog); // currentDialog = global var

if($item) { // if not null
var $notesDiv = $('#' + $item.attr('id') + "_notes");
}

switch (command) {
case "show":
// do something with $notesDiv and $textArea
break;
case "hide":
// do something with $notesDiv and $textArea
});
break;
case "hide only":
// do something with $textArea only
}
}

我的函数调用:handleNotes("hide only", null);

看起来工作正常。作为我原来问题的答案,“null”似乎足以作为空白或虚拟对象,或者根本不需要传递它,在这种情况下,函数会自动为其分配一个空值。感谢您的回复。

最佳答案

您可以通过在尝试访问 attr 方法之前测试 $item 是否已设置来避免错误,如下所示:

function handleNotes(command, $item) {

if ($item) {
...

var $textArea = $('#textarea_' + currentDialog); // currentDialog = global var
var $notesDiv = $('#' + $item.attr('id') + "_notes");

etc..

然后,如果您使用 handleNotes("hide only", null) 调用该方法,您将避免执行您想要使用 jQuery 对象执行的代码。

关于javascript - 如何将虚拟 jQuery 对象传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1787390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com