如何在JS函数中使用$(this)然后找到attr?

时间:2016-09-30 03:12:23

标签: javascript jquery

如何将$(this)与JS函数一起使用,然后找到attr

 function date_box() {
   alert(this.getAttribute(week));
  }

我想从名为week 4的元素中获取属性gospel_table。单击gospel_table4,将触发该功能:

<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box()'> Week $one_date </div></a>

我不能这样做:

$(this).click...

因为只有gospel_table4的一个元素是可点击的。使用另一种方法,gospel_table4的所有元素都是可点击的。

基本上,如何从date_box()函数中获取attr?

3 个答案:

答案 0 :(得分:4)

你的职能部门需要一个参数

HTML:

<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box(this)'> Week $one_date </div></a>

使用Javascript:

function date_box(thisdiv){
   alert($(thisdiv).attr("week"));
}

答案 1 :(得分:0)

<强> JAVASCRIPT

function date_box(that)
{
   $attr=that.getAttribute('week');
  alert($attr);
}
<a href='#'><div id='gospel_table4' week='$one_date' onclick='date_box(this)'> Week $one_date </div></a>

答案 2 :(得分:0)

所以点击不起作用的原因是div在锚标记内, 点击了锚点,其中包含Anchor tag becomes non-working link in a div with float: right;Is putting a div inside an anchor ever correct?等引用,可以提供更多详细信息。以下是jQuery()

中的代码
$("#gospel_table4").parent("a").click(function(){
    var week = $(this).children("#gospel_table4").attr("week");
    console.log(week);
});

说明:由于我们知道首先单击了锚点,因此我们将click事件侦听器放在锚点标记上。然后我们可以访问相对的子元素。

这样可以工作,但同时也会调用date_box(),我建议您删除onclick并将其放在上面,这样你就可以更好地控制代码了。希望这是有帮助的。