jquery对象中的目标类

时间:2014-12-30 20:23:37

标签: jquery object

我试图在包含导入的页面内容的对象中找到一个特定的类,然后获取附加的数据:

 $.get(otherHtml, function(result) {
      var currOtherHtml = $(result).find('[class^="customcontent"]');
      var otherPath = currOtherHtml.html().find('span.flpath').attr('data-fpath');
 }

我试图定位的I类是对象中的这一行:

<span class="flpath" data-fpath="mypage_files"></span>

我做错了什么?

2 个答案:

答案 0 :(得分:2)

find不是字符串的函数。第一行没有任何问题,问题在于:

  var otherPath = currOtherHtml.html().find('span.flpath').attr('data-fpath');
                                   ^returns a string

应该是

  var otherPath = currOtherHtml.find('span.flpath').eq(0).attr('data-fpath');

使用.html()将返回一个字符串。您应该只使用从第一行返回的jQuery对象,并在其上调用find。 eq(0)相当于要求集合中的第一个jQuery对象,以便您能够访问第一个匹配的data-fpath属性(注意:.get(0)获取本机元素)。

答案 1 :(得分:0)

如果你的HTML内容是这样的:

<div class="customcontent">
    <span class="flpath" data-fpath="mypage_files"></span>
</div>

然后在您的脚本中,otherHtml参数可以与数据组合,类选择器...,我认为......您可以跳过.flpath的选择。

// @param otherHtml {Object}
// @param cssClass {String} '.customcontent'
// @param dataClass {String} 'fpath'
// @returns undefined or {String} mypage_files
function getDataOtherPath (otherHtml, cssClass, dataClass){
    $.get(otherHtml, function(result) {
        var html = $(result).find(cssClass).find('[data-' + dataClass + ']');
        return html.data(dataClass);
    }
}

未经测试,但这是一个想法...

相关问题