Jquery 使用:contains查找特定的td元素
我有以下呈现的html:Jquery 使用:contains查找特定的td元素,jquery,Jquery,我有以下呈现的html: <table width="420" cellspacing="0" cellpadding="3" border="0"> <tbody> <tr><td>....</td> </tr> <tr> <td>Total Amount Due:</td> <td>$168.88</td> </tr> 我曾尝试在Firebug的命
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td>$168.88</td>
</tr>
我曾尝试在Firebug的命令行中稍微修改一下语法,但当我这样做时,我总是在第一行收到一个错误。对于这样的代码,直到我得到TypeError:$(tdElement)的第二行为null时,我才收到错误
此外,不确定这是否会影响任何内容,但该表实际上位于其他两个表中
我得到一个TypeError:$(tdElement)为空
即使它不匹配任何内容,jQuery也会返回一个有效的jQuery对象(不包含匹配的元素),而不是null
,因此听起来像:
- 您没有加载jQuery。检查JavaScript控制台以查看是否存在加载错误,并解决发现的任何错误
- 或者您确实加载了它,但是您还加载了另一个库,如Prototype或MooTools,它窃取了
符号。如果是,您有三个选择(至少):$
- 尝试停止使用其他库,并将其从页面中删除
- 使用
而不是jQuery
您想要使用jQuery的任何地方$
- 或者将jQuery代码放在一个函数中,您可以使用该函数对
符号进行阴影处理,如下所示:$
// If you have another library loaded, out here $ may not === jQuery (function($) { // Here, your code can happily assume $ === jQuery... })(jQuery);
:contains
。相反,如果该元素在页面上是唯一的,则使用id
并使用$(“#theid”)
查找它。如果没有,请使用一个类,并使用$(“.theclass”).find(“:contains('Total Amount')”)
查找它
最后:你正在使用
var tdElement = $("td:contains('Total Amount Due:')");
而且
alert($(tdElement).text());
无需再次调用$
,只需使用第一个jQuery实例:
alert(tdElement.text());
我得到一个TypeError:$(tdElement)为空
即使它不匹配任何内容,jQuery也会返回一个有效的jQuery对象(不包含匹配的元素),而不是null
,因此听起来像:
- 您没有加载jQuery。检查JavaScript控制台以查看是否存在加载错误,并解决发现的任何错误
- 或者您确实加载了它,但是您还加载了另一个库,如Prototype或MooTools,它窃取了
符号。如果是,您有三个选择(至少):$
- 尝试停止使用其他库,并将其从页面中删除
- 使用
而不是jQuery
您想要使用jQuery的任何地方$
- 或者将jQuery代码放在一个函数中,您可以使用该函数对
符号进行阴影处理,如下所示:$
// If you have another library loaded, out here $ may not === jQuery (function($) { // Here, your code can happily assume $ === jQuery... })(jQuery);
:contains
。相反,如果该元素在页面上是唯一的,则使用id
并使用$(“#theid”)
查找它。如果没有,请使用一个类,并使用$(“.theclass”).find(“:contains('Total Amount')”)
查找它
最后:你正在使用
var tdElement = $("td:contains('Total Amount Due:')");
而且
alert($(tdElement).text());
无需再次调用$
,只需使用第一个jQuery实例:
alert(tdElement.text());
这里有一个稍微不同的配置,但我认为它可能适合您
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td id="amountDue">$168.88</td>
</tr>
</tbody>
</table>
这里有一个稍微不同的配置,但我认为它可能适合您
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td id="amountDue">$168.88</td>
</tr>
</tbody>
</table>
有没有理由不尝试做以下事情
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td id="total-amount-due">$168.88</td>
</tr>
var ttl = $('#total-amount-due').text();
....
应付总额:
$168.88
var ttl=$(“#到期总金额”).text();
根据您发布的内容,这似乎是最简单的解决方案。是否有理由不尝试并执行以下操作
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td id="total-amount-due">$168.88</td>
</tr>
var ttl = $('#total-amount-due').text();
....
应付总额:
$168.88
var ttl=$(“#到期总金额”).text();
根据你发布的内容,这似乎是最简单的解决方案。嘿,伙计,给td一个包含的金额,例如每堂课320.00美元,或者如果你不想给一堂课,你需要一个psuedo 您尚未指定要使用其他值更改的事件的其他事项,例如,单击按钮更改值我已使用“文档准备”功能完成了更改,您可以向其添加任何事件以及金额:) 案例1)如果你能上课
$(document).ready( function() {
$(".amount").text("any value you want");
});
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr>
<td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td class="amount">$168.88</td>
</tr>
案例3)如果表的TR
为第二、第三、第四。。。在这种情况下,它是第三个
$(document).ready( function() {
$("table tbody tr:nth-child(3) td:last").text("any value you want");
});
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td></tr>
<tr>
<td>Total Amount Due:</td>
<td>$168.88</td>
</tr>
$(文档).ready(函数(){
$(“表tbody tr:nth child(3)td:last”).text(“您想要的任何值”);
});
....
应付总额:
$168.88
嘿,伙计,给那个td一节课,比如320.00美元一节课,或者如果你不想给一节课,你需要一个psuedo
您尚未指定要使用其他值更改的事件的其他事项,例如,单击按钮更改值我已使用“文档准备”功能完成了更改,您可以向其添加任何事件以及金额:)
案例1)如果你能上课
$(document).ready( function() {
$(".amount").text("any value you want");
});
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr>
<td>....</td>
</tr>
<tr>
<td>Total Amount Due:</td>
<td class="amount">$168.88</td>
</tr>
案例3)如果表的TR
为第二、第三、第四。。。在这种情况下,它是第三个
$(document).ready( function() {
$("table tbody tr:nth-child(3) td:last").text("any value you want");
});
<table width="420" cellspacing="0" cellpadding="3" border="0">
<tbody>
<tr><td>....</td></tr>
<tr>
<td>Total Amount Due:</td>
<td>$168.88</td>
</tr>
$(文档).ready(函数(){
$(“表tbody tr:nth child(3)td:last”).text(“您想要的任何值”);
});
....
应付总额:
$168.88
为重要元素提供适当的类和ID,然后查找它们。您不能依赖内部文本,如果稍后进入i18n
,会怎么样?此外,您的问题在于其他地方,因为您的标记/代码是有效的:为重要元素提供适当的类和ID,然后查找它们。您不能依赖内部文本,如果稍后进入i18n
,该怎么办?此外,您的问题还存在于其他地方,因为您的标记/代码可以工作:在这个答案中添加一个性能免责声明会很有意思。@adeneo:jQuery已经提供了一个支持:contains
的选择器引擎,无需重写功能。@T.J.Crowder-我的更好!@阿迪内奥:嗯但是这个答案忽略了一点,即jQuery不会返回null
,而不管选择什么