2012-02-26 82 views
1

我有一個函數接受一個對象(不是一個jQuery對象),裏面是一個屬性innerHTML。這是正在發生的事情的一小部分。如何使用jquery選擇對象的innerHTML屬性中的元素

function addToPluginList(thePlugin){ 
      /* Example of what is being passed in: 
      * thePlugin.innerHTML = "<h3>WP-Members</h3><span class="author"><a href="http://butlerblog.com/">Chad Butler</a></span><span class="slug">wp-members</span><span class="version">2.7.2</span><span class="description">WP-Members™ is a free membership management system for WordPress® that restricts content to registered users.</span>" 
      * Need to pull out the elements inside so they can be easily accessed. 
      * 
      **/ 
      thePlugin.version = $('.version', $(thePlugin.innerHTML)); 
      thePlugin.slug = $('.slug', $(thePlugin.innerHTML)); 
      console.log(thePlugin); // no dice 
     } 

我已經嘗試了幾種方法,但最終我所得到的是這樣的:

version: e.fn.e.init[0] 
slug: e.fn.e.init[0] 

而不是預期(thePlugin.slug ='WP-成員,thePlugin.version =' 0.2)

你會怎麼做呢?

謝謝

回答

0

所以這個問題似乎與find()方法忽略根級元素有關。通過將innerHtml包裝在div中,選擇器開始按預期工作。

function addPlugintoList(thePlugin){ 
    var elements = $('<div>' + thePlugin.innerHtml + '</div>'); 
    thePlugin.version = $('.version', elements).text(); 
    //this is equivalent to elements.find('.version').text(); 
    thePlugin.slug = $('.slug', elements).text(); 
} 

addPlugintoList(pluginObject); 

console.log(pluginObject.version); 
console.log(pluginObject.slug); 

例子:​​3210

也有對具有對象本身做這個工作的一些其他有趣的可能性:

http://jsfiddle.net/DX3TT/9/ - 這顯示了公衆的方法來綁定值一般原型。

http://jsfiddle.net/DX3TT/10/ - 這將顯示使用原型創建派生類型並讓它在ctor中執行綁定。

+0

謝謝你,加里,你的解決方案工作。我永遠不會那麼做。 – Simon 2012-02-27 03:05:33

相關問題