我在我的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