我从jQuery插件教程中获得了这段代码。但是,我的问题是javascript/jquery
问题。
在代码中,您可以看到filter()
返回一个对象,该对象包含“已过滤”对象的集合。并且append()
正在操纵它。
我要问的是:append函数如何操作所有元素,而不是只对返回的对象进行一次操作?
this.filter( "a" ).append(function() {
return " (" + this.href + ")";
});
答案 0 :(得分:1)
这是由于append(function)
的性质以及初始this
与代码中函数内部的append(function)
之间的范围差异。
根据http://api.jquery.com/append/#append-function的jQuery文档,this
对“匹配元素集合中的每个元素进行操作。[...]在函数内,this.filter("a")
引用当前元素在集合中。“
因此,在您的代码中,this.href
是一个包含任何匹配元素的jQuery对象,而函数内的Short.toUnsignedInt
本身在迭代通过集合时依次表示每个元素。因此,文本将附加到所有匹配元素。