下面是生成的动态表的示例td。
我需要迭代tds以匹配'Result'
值,并检查是否填充了相应的'Result'
值。
如果未填充span class="taglist"
,则不会有<td class="indent0">
Data1
<span class="aspect-data">
<span class="taglist">Result1</span>
</span>
<td class="indent0">
Data2
<span class="aspect-data">
<span class="taglist">Result2</span>
</span>
元素。
'Result'
我尝试使用以下代码进行迭代,该代码会警告所有'Data'
值,但我只需要获取给定$('.indent0').each(function() {
var celltext = $(this).html();
if (celltext = "Data1") {
var spantext = $(this).find(".taglist").html();
if (spantext != null) {
alert(spantext);
}
}
});
的相应值。
this.tileLayer1 = new Tile[this.tilesY, this.tilesX];
答案 0 :(得分:2)
您遇到的问题是DataX
未包含在特定元素中,因此您需要获取文本节点并根据您要查找的值检查该文本节点的文本值。
另请注意,您使用=
设置值而不是==
来比较if
条件中的值,并且您的HTML缺少某些</td>
标签。试试这个:
$('.indent0').each(function() {
var celltext = $(this).contents()[0].nodeValue.trim();
if (celltext == "Data1") {
var spantext = $(this).find(".taglist").html();
if (spantext != null) {
alert(spantext);
}
}
});
答案 1 :(得分:1)
尝试使用contents
$('.indent0').each(function() {
var celltext = $(this).contents().first()[0].textContent; //this line has changed
if (celltext == "Data1") {
var spantext = $(this).find(".taglist").html();
if (spantext != null) {
alert(spantext);
}
}
});
或
$('.indent0').each(function() {
var celltext = $(this).contents()[0].nodeValue; //this line has changed
if (celltext == "Data1") {
var spantext = $(this).find(".taglist").html();
if (spantext != null) {
alert(spantext);
}
}
});
答案 2 :(得分:1)
您可以像以下一样使用startsWith()
。
$('.indent0').each(function () {
var celltext = $(this).text().trim(); // change here
if (celltext.startsWith("Data1")) { // change here
var spantext = $(this).find(".taglist").html();
if (spantext != null) {
alert(spantext);
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="indent0">
Data1
<span class="aspect-data">
<span class="taglist">Result1</span>
</span>
</td>
<td class="indent0">
Data2
<span class="aspect-data">
<span class="taglist">Result2</span>
</span>
</td>
</tr>
</table>
&#13;