我正在尝试传递从datepicker插件返回的日期值,但是值没有显示在console.log()中,这意味着它们没有被发送。我在想我的问题是在
var $fel = $el.parent('tr:second').find('.datepicker');
var datepicker = $fel.text();
这给了我这个错误:
未捕获错误:语法错误,无法识别的表达式:不支持 伪:第二次
我的第一个<tr>
代码包含:
<tr class="main">
<td class="main_tr" data-id1="<?php $row["id"];?>" data-parentId="main"><?php $row["id"];?></td>
<input type="hidden" name="name" id="name" class="name" value="<?php $row["name"];?>">
<td><button id="find" data-id2="<?php $row["id"];?>">find</button></td>
</tr>
第二个<tr>
代码
<tr>
<td>Date Begin: <input type="text" class="datepicker" data-parentId="main" id="datepicker" name="datepicker">
Date End: <input type="text" class="datepicker2" data-parentId="main" id="datepicker2" name="datepicker2"></td>
</tr>
这是我的javascript:
$(document).on('click', '#find', function(){
//var id = $(this).data("id2");
var $el = $(this);
var id = $el.data("id2");
var $fel = $el.parent('tr:second').find('.datepicker');
var datepicker = $fel.text();
var $fel2 = $el.parent('tr:second').find('.datepicker2');
var datepicker2 = $fel2.text();
$.ajax({
url:"select_.php",
method:"POST",
data:{
id:id,
datepicker:datepicker,
datepicker2:datepicker2
},
dataType:"text",
success:function(data){
$('#live_view1').html(data);
$('#live_view2').html(data);
console.log(id);
console.log(datepicker);
console.log(datepicker2);
}
})
});
答案 0 :(得分:1)
你有多种可能性:
CSS :首先,您可以找到所有符合 tr 类型的孩子,然后您可以选择第二个:
$('#parent_element_id').find('tr:nth-child(2)');
JQuery:或者你只是抓住所有孩子作为列表,无论他们是什么类型,然后只选择第二个(从0开始):
$('#parent_element_id').children().eq(1);
答案 1 :(得分:0)
你可以使用:eq(i)pseudo,这里你必须传递从ZERO开始的索引。
var $fel = $el.parent().parent().('tr:eq(1) .datepicker');
var datepicker = $fel.text();
了解更多详情check here