2013-11-03 51 views
0

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

$('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 

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

    ()之前&的insertBefore()
  • 前置()& prependTo
  • ( )
  • 追加()& appendTo()
  • 后()& insertAfter()

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

+1

我不知道你不懂这里。方法名称是不言自明的。 – undefined

+0

@undefined例如,我可以概括jQuery方法的规则:$()接受1.包含现有元素,类或id的字符串2.包含动态创建的元素的字符串。那么你能给我一套适用于我在原始问题中列出的所有方法的一般规则吗?或者他们对他们接受的参数都有独特的规则,我只需要记住它们。 – wetjosh

+0

嗨@Barmar,你之前帮助过我:)我正在寻找一套通用的规则来设置这些方法接受的参数,而不是在给定的情况下应该使用哪种方法。 – wetjosh

回答

0

我在寻找什么参数这些方法一般一套规则接受

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

.replaceWith(newContent)
newContent:htmlString或元或阵列或jQuery的

.replaceWith(function)
function:功能

.replaceAll(target)
target :选择器或jQuery的或阵列或元素

.before(content\[, content\])
.after(content\[, content\])
.prepend(content\[, content\])
.append(content\[, content\])
content:htmlString或元或阵列或jQuery的

.insertBefore(target)
.insertAfter(target)
.prependTo(target)
.appendTo(target)
target:选择或htmlString或元素或数组或jQuery的