我是新手。
我有这样的结构:
<ul class='selectable-list'>
<li><a data-id="5" data-type="Content">Test</a></li>
<li><a data-id="3" data-type="Content">Test</a></li>
</ul>
我添加了en事件
$selectableList = $('.selectable-list a');
$selectableList.click(function(){
console.log(this)
script.addItem(this);
});
结果是this
是一个文本,所以我无法获取数据属性......为什么?
编辑:
bindEvents : function bindEvents() {
$selectableList.click(function(){
console.log(this.attr("data-type"))
script.addItem(this);
});
}
Uncaught TypeError: this.attr is not a function
答案 0 :(得分:1)
.attr是jQuery提供的一个函数,它意味着你只能将它应用于jQuery对象。
在代码段中,您尝试在属于本机javascript的 this 上使用它,并且它没有与之关联的.attr方法。此此对象将是您单击的DOM节点对象。
你需要做些什么来将你的这个包装在$或jQuery名称空间中,比如
$(this).attr("data-type")
你应该好好去
希望这会有所帮助。
快乐学习:)
答案 1 :(得分:-1)
我不确定你所谈论的文字来自哪里。 k = 10
all_data = [np.random.random((10,5)) for i in range(k)]
train = all_data[:k-1] #list of 9 (10,5) arrays
test = all_data[k-1] #one (10,5) array
train = np.vstack(train) #stacks them on top of each other
print train.shape # one (90, 5) array
将是您单击的DOM节点。如果将其包装在this
中,您应该能够读取数据属性。
$()
&#13;
$selectableList = $('.selectable-list a');
$selectableList.click(function(){
var anchor = $(this);
console.log(anchor.data("id"), anchor.data("type"));
});
&#13;