如何选择对象中的元素';带有jquery的innerHTML属性

如何选择对象中的元素';带有jquery的innerHTML属性,jquery,innerhtml,Jquery,Innerhtml,我有一个函数,它接受一个对象(不是jQuery对象),里面是一个属性innerHTML。这是正在发生的事情的一个片段 function addToPluginList( thePlugin ){ /* Example of what is being passed in: * thePlugin.innerHTML = "<h3>WP-Members</h3><span class="author"><

我有一个函数,它接受一个对象(不是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
        }
而不是预期的(thePlugin.slug='wp members',thePlugin.version='0.2)

你会怎么做


谢谢

,所以问题似乎与忽略根级别元素的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);
函数添加插件列表(插件){
变量元素=$(''+thePlugin.innerHtml+'');
thePlugin.version=$('.version',elements).text();
//这相当于元素.find('.version').text();
thePlugin.slug=$('.slug',elements).text();
}
addPlugintoList(pluginObject);
log(pluginObject.version);
控制台.log(pluginObject.slug);
例如:

让对象本身完成此工作还有一些其他有趣的可能性:

-这显示了用于绑定值的公共方法的通用原型


-这将显示使用原型来创建派生类型,并让它在ctor中进行绑定。

谢谢Gary,您的解决方案成功了。我永远也不会解决这个问题。
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);