这有点复杂,所以我会尽力解释。在以下代码中,目标是找到带有文本“(延期交货)”的td,并将其替换为带有以下URL的链接
/Email_Me_When_Back_In_Stock.asp?ProductCode=H210-10
需要从第一个兄弟td中提取“H210-10”,在这种情况下
<td class="smalltext colors_text">H210-10</td>
注意:可以有多个tr&gt; td中有“(延期交货)”,我需要为每一个都有“(延期交货)”的人做这件事。我正在努力解决这个问题。我无法访问标记。
<table cellspacing="1" cellpadding="3" border="0" bgcolor="#cccccc">
<tr class="colors_backgroundlight">
<td>Item#</td>
<td>Item Name</td>
<td>Our Price</td>
<td>Qty</td>
<td><b>Add</b></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H211-41</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Amber Frosted</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td><input type="textbox" value="1" name="QTY.H211-41" maxlength="8" size="5"></td>
<td><input type="checkbox" value="H211-41" name="ProductCode"></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H211-09</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Black Frosted</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td><input type="textbox" value="1" name="QTY.H211-09" maxlength="8" size="5"></td>
<td><input type="checkbox" value="H211-09" name="ProductCode"></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H210-10</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Blue Striped</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td colspan="2"><b><font color="#cc0000"><span class="331">(Backordered)</span>
</font></b></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H210-30</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Green Striped</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td><input type="textbox" value="1" name="QTY.H210-30" maxlength="8" size="5"></td>
<td><input type="checkbox" value="H210-30" name="ProductCode"></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H210-20</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Red Striped</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td><input type="textbox" value="1" name="QTY.H210-20" maxlength="8" size="5"></td>
<td><input type="checkbox" value="H210-20" name="ProductCode"></td>
</tr>
<tr bgcolor="#ffffff" class="Multi-Child_Background">
<td class="smalltext colors_text">H211-77</td>
<td class="productnamecolorSMALL colors_productname">J. Herbin Small Glass Dip Pen - Violet Frosted</td>
<td class="smalltext colors_text"><b>$15.75</b></td>
<td><input type="textbox" value="1" name="QTY.H211-77" maxlength="8" size="5"></td>
<td><input type="checkbox" value="H211-77" name="ProductCode"></td>
</tr>
<tr><td bgcolor="#ffffff" align="right" class="smalltext colors_text Multi-Child_Background" colspan="5">Check the items you wish to purchase, then click
<input type="hidden" value="Y" name="IsMultiChildAddToCart">
<input type="hidden" value="ShoppingCart.asp" name="ReturnTo">
<input border="0" type="image" alt="J. Herbin Small Glass Dip Pen" name="btnaddtocart" src="/v/vspfiles/templates/140/images/buttons/btn_addtocart.gif">
</td></tr></table>
答案 0 :(得分:2)
看看是否有效:
$('td:contains("(Backordered)")').each(function(){
$this = $(this).html('');
$('<a />').appendTo(this).attr('href', '/Email_Me_When_Back_In_Stock.asp?ProductCode=' + $this.siblings(':first-child').text()).text('Backorder');
});
答案 1 :(得分:1)
这对我有用:
$("td:contains('(Backordered)')").each(function() {
var item = $(this).closest('tr').find('td:first')
var code = $(item).text();
$(item).html('<a href="/Email_Me_When_Back_In_Stock.asp?ProductCode='+code+'">'+code+'</a>');
});
答案 2 :(得分:0)
事实证明我确实对标记有一些有限的访问权限,而之前我认为我没有任何访问权限。
我能够在“(延期交付)”文本中添加一个类......
<span class="331">(Backordered)</span>
通过这样做,我得到了以下有效的Jquery。
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$('.331').each(function(){
$(this).closest('td').replaceWith( '<td colspan="2"><a href="/Email_Me_When_Back_In_Stock.asp?ProductCode=' + $(this).closest('td').siblings(':first-child').text() + '"><img border="0" src="/v/vspfiles/templates/140/images/buttons/btn_emailbackinstock.gif"</a></tr>');
});
});
</script>
感谢大家的帮助,帮助我搞清楚这一点。