目标 - >选择器VS选择器 - >目标

时间:2013-11-03 22:52:14

标签: jquery

我问这个问题只是为了更好地理解jQuery。我注意到一些jQuery方法仅在目标和选择器的顺序上有所不同。例如:

$('img').replaceWith('<p>Hello</p>');    // target --> selector (or content)
$('<p>Hello</p>').replaceAll('img');     // selector --> target

但这似乎是他们完全可逆的唯一方式。例如:

$('img').replaceWith(Hello);             // works
$(Hello).replaceAll('img');              // breaks

$('img').replaceWith('.foo');            // breaks
$('.foo').replaceAll('img');             // works

$('img').replaceWith($('.foo'));         // works
$($('.foo')).replaceAll('img');          // works but is unnecessary

我只是明确测试了上面的例子,但我认为这些规则同样适用于:

  • 之前()&amp;的insertBefore()
  • prepend()&amp; prependTo()
  • 追加()&amp; appendTo()
  • after()&amp; insertAfter()

我在这里看到的一般规则是什么?每当我遇到这种情况时,我宁愿不猜测和检查。

1 个答案:

答案 0 :(得分:0)

  

我正在寻找这些方法接受的参数的一般规则

Ahem ...从jQuery文档中提取:

<强> .replaceWith(newContent)
newContent:htmlString或Element或Array或jQuery

<强> .replaceWith(function)
function:功能

<强> .replaceAll(target)
target:选择器或jQuery或数组或元素

<强> .before(content\[, content\])
.after(content\[, content\])
.prepend(content\[, content\])
.append(content\[, content\])
content:htmlString或Element或Array或jQuery

<强> .insertBefore(target)
.insertAfter(target)
.prependTo(target)
.appendTo(target)
target:Selector或htmlString或Element或Array或jQuery