2015年10月4日 星期日

jQuery 和 javascript 混用問題

最近發現非$(document)開頭的,如$(location).href,裡面是location可以和javascript的location混用
而$(document)就不可以混用,真是太奇怪了
$(document).ready()有三種寫法,其中一種不建議使用,看官網,所以下面的$(function(){}),function(){}被$()包起來,也屬於$(document)

jQuery本身是集合,所以在轉換成DOM時,必需取出其中一項才能轉換
譬如用jQuery的get()或javascript陣列,這時只能用DOM方法(下面的程式第一段)
如果一定要用jQuery的方法,可以用$()包起來(下面的程式第二段)
而jQuery只能用jQuery的方法,以下是個範例(下面的程式第二段)
最後一個each是改良後較佳的寫法,比較不會有混用的情形(下面的程式第三段)
而javascript迴圈的continue和break
在jQuery就是return和return false

<html lang="en">
<head>
    <meta charset="utf-8">
    <title>get demo</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <script>
        $(function(){
            var aaa = $('[name="aaa"]');
            alert(aaa.get(0).value);
            alert(aaa[0].value);
            alert(aaa.eq(0)[0].value);
            
            aaa.each(function(i){
                alert($(aaa.get(i)).val());
                alert($(aaa[i]).val());
                alert($(aaa.eq(i)[0]).val());
            });
            
            $('[name="aaa"]').each(function(){
                alert($(this).val());
                alert(this.value);
            });
        });
    </script>
</head>
<body>
    <input type="text" value="1" name="aaa" />
    <input type="text" value="2" name="aaa" />
    <input type="text" value="3" name="aaa" />
</body>
</html>

沒有留言:

張貼留言