我试图在包含导入的页面内容的对象中找到一个特定的类,然后获取附加的数据:
$.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>
我做错了什么?
答案 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);
}
}
未经测试,但这是一个想法...