Javascript 在表列上单击鼠标,从相应的跨度中获取值
如何获得下面显示的时间值,从相应的跨度上单击鼠标下表列,该列有下拉列表。 例如:如果单击第1列中的任何下拉列表,我需要在第1列中获取时间Javascript 在表列上单击鼠标,从相应的跨度中获取值,javascript,c#,jquery,Javascript,C#,Jquery,如何获得下面显示的时间值,从相应的跨度上单击鼠标下表列,该列有下拉列表。 例如:如果单击第1列中的任何下拉列表,我需要在第1列中获取时间06:30 PM-03:30 AM(显示在顶部)。 如果我单击第二列中的任何下拉列表,我需要获取第二列中的时间,依此类推。。使用Jquery 下表为html结构: 下面是div内部显示的跨度: JavaScript: function drpdwn_resource(resourceElement, resourceObj, isEmpty, startT
06:30 PM-03:30 AM
(显示在顶部)。
如果我单击第二列中的任何下拉列表,我需要获取第二列中的时间,依此类推。。使用Jquery
下表为html结构:
下面是div内部显示的跨度:
JavaScript:
function drpdwn_resource(resourceElement, resourceObj, isEmpty, startTimeSlot, endTimeSlot, showId, workOrderId) {
var resourceData = [];
resourceData.push(resourceObj);
$(resourceElement).select2({
data: resourceData,
closeOnSelect: true,
placeholder: '(Empty)',
allowClear: true,
}).on('select2:open', function (e) {
$(resourceElement + ' option[value]').remove();
//CRM Data
$.ajax({
url: "/DailyJobSchedule/GetResources",
type: "POST",
data: { start: startTimeSlot, end: endTimeSlot },
async: false,
success: function (response) {
for (var data in response) {
var newOption = new Option(response[data].text, response[data].id, false, false);
$(resourceElement).append(newOption).trigger('change');
}
},
failure: function (response) {
console.log('failure');
},
error: function (response) {
console.log('error');
}
});
C#:
for(workOrderList中的var i){
//console.log(“===========================================”);
$('.resource popup').append(“\
\
“+workOrderList[i].ServiceAccountName+”(“+workOrderList[i].BoothNumber+”)\
\
“+力矩(workOrderList[i].StartTime).格式('hh:mm A')+”-”
+力矩(workOrderList[i].EndTime).format('hh:mm A')+“\
");
您可以使用和函数来实现这一点,而无需jQuery
document.querySelectorAll(“.job start tm”)
.forEach(输入=>input.addEventListener('click',事件=>
log(event.target.innerHTML))
)
14:20
15:50
试试这样的方法:
document.addEventListener('click', function(e){
if(e.target.tagName.toLowerCase() == 'span'){
console.log(e.target.innerText);
}
});
使用jQuery,它相当简单 我正在等待你编辑问题以显示下拉元素(希望发布html和css源代码,而不是屏幕截图),然后我将编辑这个答案 同时,我假设
- 下拉列表为
s - 它始终是包含选定项的最后一行
- 每个表列始终正好有两列
- 包含要获取的值的倒数第二行
$('.resource group')//选择表
.on('单击',
//目标是每个项目的最后一行,然后是该行中的
'.orkOrderlist>div>:最后一个子项选择',
e=>{//在*表上添加一个单击处理程序*
让$sel=$(e.target),//捕获单击的
选档杆=
$sel.is(“:first child”)?//确定哪个列包含该值
'span.job start tm'://第一个的选择器
'span.job end tm',//最后一个的选择器
$valueSpan=
$sel.parent().prev()//捕获s上方的行
.children(spanSelector);//捕获所需的
console.log($valueSpan.text());//使用该值执行某些操作
}
);
ul.resource-group{
显示器:flex;
填充:0;
列表样式类型:无;
}
li.orderlist{
边框:1px实心rgba(0,0,0,10%);
}
c.职务{
字体大小:粗体;
}
.job dtls clm{
填充:4px;
}
挑选{
边界:无;
}
选择:最后一个孩子{
宽度:100%;
颜色:橙色;
}
-
皇家不列颠哥伦比亚博物馆(1446)
下午6:30
-
凌晨3:30
1.
(空)
-
本田Gwinnet广场(1347)
下午6:30
-
凌晨3:30
1.
(空)
您尝试了什么?请将您的问题插入到您的问题中。请看一看,您是否可以将您的图像替换为包含展开的下拉列表的div?我假设这是图像中的最后一个div。更好的是,将html复制并粘贴到代码块中。由于您需要使用jQuery,因此解决方案比目前的答案。
document.addEventListener('click', function(e){
if(e.target.tagName.toLowerCase() == 'span'){
console.log(e.target.innerText);
}
});