我试图获得班级的价值' ajax_fields'。该页面包含多个表,因此我必须使用jQuery parent()函数。
$(document).ready(function() {
$('.hide_table').live('click', function() {
alert($(this).parent(".row").find('.ajax_fields').val());
});
});
上面你看到我的jQuery代码。
<div id="content">
<div id="id_pages">
<div class="row">
<div class="table width_100">
<input type="hidden" class="ajax_fields" value="title,url" />
<input type="hidden" class="ajax_table" value="pages" />
<div class="form_title">
<h2>Pagina's</h2>
</div>
<table cellspacing="0" cellpadding="0">
<thead>
<tr>
<td width="10px"></td>
<td width="10px"></td>
<td>title <a class="hide_table" id="verberg_title">x</a></td>
<td>url <a class="hide_table" id="verberg_url">x</a></td>
</tr>
</thead>
</table>
</div>
</div>
</div>
在这里,您可以看到相关的HTML代码,当我点击时,我会收到一条提示“未定义”的提示。我做错了什么?!
我也尝试了以下选项,但它们也没有用。
$(this).parent(".row").children('.ajax_fields').val();
$(this).closest('.ajax_fields').val();
答案 0 :(得分:0)
使用.on() .live()已弃用
$(document).on('click','.hide_table', function() {
alert($(this).closest('.row').find('.ajax_fields').val());
});
答案 1 :(得分:0)
你可以这样做:
$('.hide_table').on('click', function (e) {
e.preventDefault(); // Cancel the default action (navigation) of the click
alert($(this).closest('.row').find('.ajax_fields').val());
});
$(this)
会为您提供已点击的链接。closest('.row')
将通过测试元素本身并遍历DOM树中的祖先来为您提供与选择器'.row'
匹配的第一个元素。find('.ajax_fields').val()
会找到ajax_fields
输入并获取其值。答案 2 :(得分:0)
.parent()
仅搜索直接父级,.children()
仅搜索直接子级。您可以改为使用.parents()
和.find()
:
$(this).parents(".row").find('.ajax_fields').val();
此外,.live()
在1.7中已弃用,在1.9中已删除。请改为.on()
。
答案 3 :(得分:0)
要从.hide_table
转到.ajax_fields
,您可以使用.closest()
通过迭代父母来选择<div class="row">
,然后执行.find()
:
$(this)
.closest('.row')
.find('.ajax_fields')
.val();
此外,您不应再使用.live()
,因为它是deprecated。使用.on()
代替使用事件委派是一种很好的做法:
$('#id_pages').on('click', '.hide_table', function(e) {
e.preventDefault();
// your code
});
最后,不建议在锚点上省略href
属性:
<a href="#" class="hide_table" id="verberg_title">x</a>
答案 4 :(得分:0)
<input type="hidden" class="ajax_fields" value="title,url" />
不是<a class="hide_table" id="verberg_title">x</a>
的祖先,当然它不是它的父元素。它就像一棵家谱,一个远房表亲不能是你的父亲(好吧,通常不是)。
你基本上需要找到一个真正的共同祖先:
$(this).closest(".table") // $(this).closest(".row") will also do
...然后找到合适的后代:
.find('.ajax_fields')