函数中的惯用jQuery和选择器路径

时间:2010-05-28 15:35:16

标签: javascript jquery iframe jquery-selectors

在jQuery上编写此函数的最佳方法是什么?

背景:我正在研究一个存在很多问题的遗留网络应用。它要求我们插入一个IFrame来处理一些“屏幕”。稍后这段代码将被重构,但现在我们需要这个。

function openIframePage(selectorPath, url) {
    if ($(selectorPath).length > 0) {
      $('#ifrPage').attr('src', url);
    } else {
      $(selectorPath).append('<iframe id="ifrPage" src="' + url + '" />');
    }
}
function closeIframePage() {
     $('#ifrPage').remove();
}

有没有更好的方法来写这个?大多数人如何绕过选择器?或者他们传递jQuery对象本身?不寻找插件。感谢。

1 个答案:

答案 0 :(得分:3)

我会让函数将实际的jQuery对象作为参数,并在传递参数时调用$
这意味着选择器只会被评估一次。

例如:

function openIframePage(elem, url) {
    if (elem.length > 0) {
      $('#ifrPage').attr('src', url);
    } else {
      elem.append('<iframe id="ifrPage" src="' + url + '" />');
    }
}

为了获得最大的灵活性,您可以编写elem = $(elem),然后传递几乎所有内容。