使用父元素中的jQuery获取数据属性的值

时间:2016-07-28 15:57:15

标签: javascript jquery parents

我仍然认为我不了解jQuery的regr = linear_model.LinearRegression() regr.fit(X, Y) plt.scatter(X[:,0], Y, color='black') plt.plot(X[:,0], regr.predict(X), color='blue', linewidth=3) plt.xticks(()) plt.yticks(()) plt.show() 方法是如何工作的。

我有以下HTML代码,点击pred = regr.predict([[49, 26]]) print pred 我想获得parent()的值。

.spot-info

请参阅下面我的js尝试:

data-test

此测试在控制台中记录<div class="spot" id="spot-1" data-test="12345"> <div class="spot-main"> <span>Test</span> <a href="#" class="spot-info">view</a> </div> </div> <div class="spot" id="spot-2" data-test="67891"> <div class="spot-main"> <span>Test</span> <a href="#" class="spot-info">view</a> </div> </div> 。我原以为这会起作用,因为它正在检查$('.spot-info').click(function ( e ) { e.preventDefault(); var test = $(this).parent().parent().data('data-test'); console.log(test); }); 的父级的父级。

此外,有没有更好的方法,而不是将许多undefined方法链接在一起?我担心如果html改变会破坏,也许这就是使用jquery的缺点。

3 个答案:

答案 0 :(得分:2)

尝试 attr 。另外,尝试“最接近”而不是两次引用父母:

$('.spot-info').click(function ( e ) {
    e.preventDefault();
    var test = $(this).closest('.spot').attr('data-test');
    console.log(test);
});

答案 1 :(得分:0)

不确定 - 但我认为就是这样:

$('.spot-info').click(function ( e ) {
    e.preventDefault();
    var test = $(this).parent().parent().data('test');
    console.log(test);
});

使用data-

获取数据时,您不需要.data()前缀

答案 2 :(得分:0)

如果您可以使用 closest() parents() ,那就更好了,而不是:

$(this).parent().parent().data('test');

使用:

$(this).closest('.spot').data('test');
$(this).parents('.spot').data('test');

注意:主要问题来自.data('data-test');当您使用 data() 功能时,您不应添加字符串{{1在开始时。

希望他的帮助。

工作代码段

&#13;
&#13;
data-
&#13;
$('.spot-info').click(function ( e ) {
    e.preventDefault();
    var test = $(this).closest('.spot').data('test');
  
    console.log(test);
});
&#13;
&#13;
&#13;