我在我的jQuery的事情上有问题。我只是不知道我的代码有什么问题,但我认为我需要向你们寻求帮助。对我的代码发生的更好的解释会有很大的帮助。我对jQuery的东西是全新的,所以请和我一起裸照。Jquery警报不显示预期的代码
当追加被调用时,它显示了我期望看到的元素,但在我的警报中,我只能看到1个单词'first'。
这是我的代码。 http://jsfiddle.net/MCvLQ/
我在我的jQuery的事情上有问题。我只是不知道我的代码有什么问题,但我认为我需要向你们寻求帮助。对我的代码发生的更好的解释会有很大的帮助。我对jQuery的东西是全新的,所以请和我一起裸照。Jquery警报不显示预期的代码
当追加被调用时,它显示了我期望看到的元素,但在我的警报中,我只能看到1个单词'first'。
这是我的代码。 http://jsfiddle.net/MCvLQ/
好的,让我一行一行地解释一下。 首先,
var $val = $(myElement).not('#spn2')
此说,你是选择不包括具有SPN2的id的元素myElement的所有元素。
$val now is equivalent to
--------------------------
<span id="spn1">first </span>
<span id="spn3">third </span>
<span id="spn4">fourth </span>
您注意到上面的元素,id为'spn2'的元素不再存在。基本上。不()选择器定义为从匹配元素集合中删除元素。
那么接下来的这个说法
$('#myDiv').append();
增加$ val的所有元素到myDiv的端部。
我在myDiv中添加了一个预定义的元素,所以您会注意到所有元素都添加在div的最后部分。 我还为您创建了一个按钮,看到.append()这是.prepend()的反面。这也会将这些元素添加到myDiv中现有元素的顶部。
见我修改后的代码在这里看到的差别http://jsfiddle.net/MCvLQ/1/
最后
alert($val.html());
的.html()被定义为,以获得的第一个元素的HTML内容设定的匹配元素。 这里指的 http://api.jquery.com/html/
通知,$ val的最新价值,因为你可以看到第一个元素是“第一”,这样解释了为什么你的警报只显示文字“第一”。 .html()方法使用浏览器的innerHTML属性。
附加信息:
除了。不是()选择你也可以使用:不()选择。这里指的http://api.jquery.com/not-selector/
对于速度的问题,本次测试http://jsperf.com/jquery-css3-not-vs-not说:不()的方式远优于。不是()大多数除了IE8的浏览器。
但是,仍然取决于你。无论哪一个对你来说都更具可读性。编码方式.not()乍一看代码更容易阅读。
我看到:)非常感谢。难怪我只得到'第一'的结果。现在,我很清楚。谢谢你,先生! – 2011-05-06 11:13:31