簡體   English   中英

在jQuery對象和純js對象之間轉換?

[英]Converting between a jQuery object and a pure js object?

$('#elementID')返回的對象與document.getElementById('elementID')返回的對象有什么document.getElementById('elementID')

而且,你怎么能輕易地從一個轉換到另一個? 例如:

$('a').each(function(){
    // How can I access 'this' as a pure javascript object instead of as a jQuery object?
});

這已經困擾了我一段時間了。 我知道你不應該把兩者混為一談,但我只是想了解原理。

$('#elementID')返回的對象與document.getElementById('elementID')返回的對象有什么document.getElementById('elementID')

$('#elementID')返回一個具有大量函數的對象,這些函數都對document.getElementById('elementID')的結果進行操作。 把jQuery對象想象成document.getElementById('elementID')所在的巨型機器人。

您可以使用以下命令訪問包裝的DOM對象:

  • $('#elementID').get()
  • $('#elementID').get(0)
  • $('#elementID')[0]

如果選擇器匹配多個元素,則可以使用$elements.get(1)$elements[1]訪問第二個元素。

而且,你怎么能輕易地從一個轉換到另一個?

要使用jQuery的便捷函數包裝對象,只需將其傳遞給$函數:

$(document.getElementById('foo'))
$(document.querySelectorAll('.foo:not(.bar)'))

.get() ,使用.get()或括號表示法。

在您的特定示例中,您不需要執行任何特殊操作,因為this實際上是一個普通的DOM對象。 這就是為什么你經常看到滿滿$(this)回調。

jquery對象只是一個具有特殊功能的數組

// non-jquery -> jquery
var a = document.getElementById('some-link'); // one element
var $a = $(a);

// jquery -> non-jquery
a = $a[0]; // a jquery element holds all of its matches in the indices 0..(a.length) just like a  JS array

Jquery對象包含描述對象的屬性和與該對象交互的方法(函數)

我使用以下代碼創建一個簡單的javascript元素數組,但有些情況我發現我需要使用與jQuery對象相同的元素。 然后我發現以下解決方案來做到這一點。

var cboxes = document.getElementsByName('deletecheck');
var len = cboxes.length;
for (var i=0; i<len; i++) {
    if (cboxes[i].checked){
            jQuery(cboxes[i]).parent().parent().remove();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM