javascript - 遍历所有 div 并在任何 td 中搜索,如果找到获取下一秒 td 值的值
问题描述
下面是我的html文件。
<!DOCTYPE html> <html>
<table id="table1">
<div id="157">
<br>
<table>
<tr>
<td>Test ID</td>
<td>:</td>
<td>157</td>
</tr>
<tr>
<td>Test Plan Name</td>
<td>:</td>
<td>Validation-Current Day</td>
</tr>
<tr> </div>
<div id="200">
<br>
<table>
<tr>
<td>Test ID</td>
<td>:</td>
<td>157</td>
</tr>
<tr>
<td>Test Plan Name</td>
<td>:</td>
<td>Eligibility Current Day</td>
</tr>
<tr> </div>
</table>
</div>
如果发现我想搜索“测试 ID” 我想获得“157”,就像我想获得测试计划名称一样。我尝试了下面的代码,但在“验证-当前日期”的情况下给出“157”,资格当前日期”
下面是我的代码
<!DOCTYPE html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
var resp = "";
var htmlstring = "";
var template = "";
var testIDArray = [];
var testPlanNameArray = [];
$(document).ready(function() {
$("#Analyse").click(function() {
$.ajax({
url: 'home.php',
success: function(response) {
resp = response;
alert(resp);
$.get("new.php?&filename=" + resp).done(function(data1) {
htmlstring = data1;
$('<div />', {
html: htmlstring
}).find('div').each(function() {
if($(this).is(':contains("FAIL")'))
{
if($(this).is(':contains("Test ID")'))
{
testIDArray.push($(this).find('td:eq(2)').text().trim());
console.log($(this).find('td:eq(2)').text().trim());
console.log($(this).closest('td').next('td').text().trim() );
}
if($(this).is(':contains("Test Plan Name")'))
{
testPlanNameArray.push($(this).find('td:eq(2)').text().trim());
console.log($(this).is(':contains("Test Plan Name")').next('td').text().trim());
console.log($(this).closest('td').next('td').text().trim() ); // this is also returning 157,158 where as I'm expecting "Validation-Current Day,Eligibility Current Day"
}
}
})
});
}
});
});
});
</script>
</head>
<body>
<button class="btn btn-lg btn-success btn-block" id="Analyse">Analyse</button>
<p id="demo"></p>
</body>
</html>
我真的被困住了。请帮忙。提前致谢。
如果发现我想搜索“测试 ID” 我想获得“157”,就像我想获得测试计划名称一样。我尝试了下面的代码,但在“验证-当前日期”的情况下给出“157”,资格当前日期”
解决方案
你的html有一些变化
<div id="157">
<br>
<table>
<tr>
<td>Test ID</td>
<td>:</td>
<td>157</td>
</tr>
<tr>
<td>Test Plan Name</td>
<td>:</td>
<td>Validation-Current Day</td>
</tr>
</table>
</div>
<div id="200">
<br>
<table>
<tr>
<td>Test ID</td>
<td>:</td>
<td>157</td>
</tr>
<tr>
<td>Test Plan Name</td>
<td>:</td>
<td>Eligibility Current Day</td>
</tr>
</table>
</div>
在上面的 html 中,如果要将此 html 添加到表中,则还需要添加 tr,td。
更改您的 JS 每个循环代码,如下所示
$("div").each(function() {
if($(this).find("table tr:first td:first").text() == "Test ID")
{
testIDArray.push($(this).find("table tr:first td:eq(2)").text().trim());
}
if($(this).find("table tr:eq(1) td:first").text() == "Test Plan Name")
{
testPlanNameArray.push($(this).find('table tr:eq(1) td:eq(2)').text().trim());
}
})
alert(testIDArray)
alert(testPlanNameArray)