If you can get the HTML you are wishing to process into a Javascript String object, you could use a RegEx to identify the particular string you're after.
For example, given your test text:
<TABLE class="d97m2" cellSpacing=0 cellPadding=0 sizset="false" sizcache06358115873960983="276 82 150">
<!-- A bunch of other rows -->
<TR>
<TD class="d97m40"><span class="label">Prop Taxes:</SPAN></TD>
<TD class="d97m50" colSpan=2><SPAN class="wrapped-field">$4,586</span></TD>
<TD class="d97m43"><span class="label d97m29">Garbage:</SPAN></TD>
<TD class="d97m26"><SPAN class="wrapped-field">$0</span></TD>
<TD class="d97m44"><span class="label">Parking Inc:</SPAN></TD>
<TD class="d97m45"><SPAN class="wrapped-field">$0</span></TD>
<TD class="d97m46"><span class="label">TOE:</SPAN></TD>
<TD class="d97m47"><SPAN class="wrapped-field">$10,248</span></TD></TR>
<TR>
<!-- a bunch more rows -->
</TABLE>
The following regular expression:
/.*?Prop\sTaxes(.|\s)*?d97m50.*?\$(.*?)<\/span/mg
will produce in its second match the value "4,586", which you can then process as you wish.
Here's an example answer that shows how to get multiple matches and process them.
Javascript Regular Expression multiple match
This code works for me:
function regExTest() {
var s = '<TABLE class="d97m2" cellSpacing=0 cellPadding=0 sizset="false" sizcache06358115873960983="276 82 150">' +
'<!-- A bunch of other rows -->' +
'<TR>' +
'<TD class="d97m40"><span class="label">Prop Taxes:</SPAN></TD>' +
'<TD class="d97m50" colSpan=2><SPAN class="wrapped-field">$1,986</span></TD>' +
'<TD class="d97m43"><span class="label d97m29">Garbage:</SPAN></TD>' +
'<TD class="d97m26"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m44"><span class="label">Parking Inc:</SPAN></TD>' +
'<TD class="d97m45"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m46"><span class="label">TOE:</SPAN></TD>' +
'<TD class="d97m47"><SPAN class="wrapped-field">$10,248</span></TD></TR>' +
'<TR>' +
'<TR>' +
'<TD class="d97m40"><span class="label">Prop Taxes:</SPAN></TD>' +
'<TD class="d97m50" colSpan=2><SPAN class="wrapped-field">$4,586</span></TD>' +
'<TD class="d97m43"><span class="label d97m29">Garbage:</SPAN></TD>' +
'<TD class="d97m26"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m44"><span class="label">Parking Inc:</SPAN></TD>' +
'<TD class="d97m45"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m46"><span class="label">TOE:</SPAN></TD>' +
'<TD class="d97m47"><SPAN class="wrapped-field">$10,248</span></TD></TR>' +
'<TR>' +
'<TR>' +
'<TD class="d97m40"><span class="label">Prop Taxes:</SPAN></TD>' +
'<TD class="d97m50" colSpan=2><SPAN class="wrapped-field">$2,514</span></TD>' +
'<TD class="d97m43"><span class="label d97m29">Garbage:</SPAN></TD>' +
'<TD class="d97m26"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m44"><span class="label">Parking Inc:</SPAN></TD>' +
'<TD class="d97m45"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m46"><span class="label">TOE:</SPAN></TD>' +
'<TD class="d97m47"><SPAN class="wrapped-field">$10,248</span></TD></TR>' +
'<TR>' +
'<TR>' +
'<TD class="d97m40"><span class="label">Prop Taxes:</SPAN></TD>' +
'<TD class="d97m50" colSpan=2><SPAN class="wrapped-field">$3,312</span></TD>' +
'<TD class="d97m43"><span class="label d97m29">Garbage:</SPAN></TD>' +
'<TD class="d97m26"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m44"><span class="label">Parking Inc:</SPAN></TD>' +
'<TD class="d97m45"><SPAN class="wrapped-field">$0</span></TD>' +
'<TD class="d97m46"><span class="label">TOE:</SPAN></TD>' +
'<TD class="d97m47"><SPAN class="wrapped-field">$10,248</span></TD></TR>' +
'<TR>' +
'<!-- a bunch more rows -->' +
'</TABLE>';
var qualityRegex = /.*?Prop\sTaxes(.|\s)*?d97m50.*?\$(.*?)<\/span/mg,
matches = [];
var match = qualityRegex.exec(s);
while (match != null) {
matches.push(match[2]);
match = qualityRegex.exec(s);
}
/* Matches now contains the numbers you require */
}