通过id选择Jquery div,选择class的值

时间:2011-11-04 19:07:14

标签: php jquery

我该怎么做? 我的html结构看起来像这样 编辑:我已更新为HTML,因此符合规则。

<td id="1" class="LinkWrap"><a href="" class="link">link</a></td>

我使用此代码:

$(".link").click(function() {
$(this).parent();
//some ajax code
});

要通过id LinkWrap选择td,但我需要类的值, 班级&#39;值由php&amp;&amp; mysql并且是我获取的元素的id。因此,价值不是常数i,我只能说选择值为1的类,它可能是2或5932。

我需要我的ajax脚本的值,所以我可以在用户点击该链接时插入。 如果有更好的方法,请告诉我:)。

5 个答案:

答案 0 :(得分:3)

除了不建议使用数字启动类名这一事实。使用attr获取class属性。

$(".link").click(function() {
   alert( $(this).parent().attr('class') ); 
});

编辑:您最好也使用其他人所说的数据属性。

HTML

 <td data-rowid="1" class="LinkWrap"><a href="" class="link">link</a></td> 

的Javascript

$(".link").click(function() {
   alert( $(this).parent().data('rowid') ); 
});

答案 1 :(得分:3)

听起来你正在class属性中进行数据存储。类不能以数字开头,这意味着您的无效使用可能会导致某些浏览器出现故障。您最好将jQuery的data()data-*属性结合使用。

答案 2 :(得分:1)

Interstellar_Coder和wilbbe01都在执行中,但是你的代码中有一件东西会咬你。 td有一个ID,如果重复,可能会导致您引用问题。对于不同浏览器的非常不可预测的结果,id属性在DOM实例中应该是唯一的。

除了ceejayoz解决方案最好。

答案 3 :(得分:0)

我认为你需要的是以下内容。

$(this).parent().attr('class');

编辑:同样也是其他人声明的数据属性。

答案 4 :(得分:0)

正如我在评论中提到的那样,似乎你把类和ID搞混了,为了避免ceeyajoz注意到的问题,我建议使用另一种方法:

$('.link').click(function(e){
   var the_id = $(this).closest('td').attr('id');  //or parent().
   $.ajax({
       url: 'http://www.mysite.com/index.php?page_id='+the_id,
       success:function(response){
         alert(response);
       }
   });
  e.preventDefault();
});

在你的HTML中:

<td class="LinkWrap" id="td_1"><a href="" class="link">link</a></td>

在你的php中:

$id = $_GET['page_id'];
$id = str_replace('td_','',$id);
echo $id;