我该怎么做? 我的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脚本的值,所以我可以在用户点击该链接时插入。 如果有更好的方法,请告诉我:)。
答案 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;