0

概述

我非常感谢任何帮助。我确定这很“容易”,但我无法弄清楚。我必须使用选择器来选择唯一的图像文件名。然后我需要替换<td>它所在的右侧的一<td><img>

我有当前的网站,我还制作了一个图表来帮助更好地解释这一点。检查以下两个链接: 网站:http ://www.writeguard.com/catalog/Checks/LaserInkjet-Checks 图:http: //goo.gl/Q3Uif

问题

上述网站的链接没有问题。我们在 oscommerce 中进行了“特许经营”自定义修改。只有拥有特定帐户的客户才能登录我需要帮助的地方。我制作的图表描述了它,很简单。就这样你拥有了我的“拼图”的所有“碎片”,这就是我.replaceWIth()为主站点做的事情。此示例适用于顶行...对于需要修改的每一行,我都有其中一个。

 $("a[href$=/Premium-Security-Laser-Check].smallTextLink").parent()
 .replaceWith('<td class="productListing-data" style="border-left:1px solid #FFF; border-top:1px solid #FFF; border-bottom:1px solid #808080; border-right:1px solid #808080;"><div class="leftSide"><a href="http://www.writeguard.com/catalog/Checks/LaserInkjet-Checks/Premium-Security-Laser-Check" class="smallTextLink">Premium Security Laser Check</a><ul style="line-height: 1.5em; font-size: 11px; margin-left: -15px;"><li style="color:red;"><strong>Buy 500 Checks, Get 500 Free Special!</strong></li><li>More than 8 security features</li><li>Thermochromic Ink</li><li>8.5" x 11" sheet 24lb MICR paper</li><li>2 perforations @ 3.5" x 7"</li></ul><div class="moreInfoButtonsNew"><a href="http://www.writeguard.com/catalog/Checks/LaserInkjet-Checks/Premium-Security-Laser-Check" class="positive"><img src="http://writeguard.com/catalog/images/new_layout/icons/information.png" alt=""/>More Info</a></div></div><div class="rightSide"><p class="ourPrice">Starting At:<br>$39.50</p></div></td>');

我认为这根本没有效率。但就我现在遇到的这个问题而言,我需要能够做我在顶部描述的事情。选择<img>它的文件名,然后导航 DOM,这样我就可以使用它.replaceWith()来实现我上面描述的相同的事情。我尝试了很多不同的选择器,但它们都不起作用。它总是最终在表格数据中的表格数据中生成表格数据,直到页面实际上是 10 英尺长。我不知道我哪里错了。

如有必要,我很乐意提供更多详细信息。我显然对 jQuery 不是很有经验,而且我的方法可能是一场噩梦。我想尽快学习使用 jquery 编程的正确、有效的方法。非常感谢您的帮助!

4

2 回答 2

0

选择器应该是:

$('a.smallTextLink[href$="Premium-Security-Laser-Check"]')

你的表结构,你有:

<tr>
  <td>
    <div>
      <a href='....'>
      ..
      ..

因此,您的 jQuery 语句需要找到作为 td 的父级。parent() 正在返回 div。您希望 parents('td:first') 获取作为 td 元素的第一个父级。

$('a[href$="Premium-Security-Laser-Check"].smallTextLink').parents('td:first')
  .replaceWith(....)
于 2012-01-28T01:54:16.447 回答
0

我相信问题出在您的选择器上。

我不相信$("a[href$=/Premium-Security-Laser-Check].smallTextLink")会真正抓住任何东西。

尝试这个:

$('a.smallTextLink[href$="Premium-Security-Laser-Check"]').click(function()
{
    alert('clicked the security laster check small text link');
});

如果这可行,那么您应该能够更改您的选择器并让您的 replacewith 工作。

$('a.smallTextLink[href=/Premium-Security-Laser-Check]').parent() .replaceWith('<td class="productListing-data" style="border-left:1px solid #FFF; border-top:1px solid #FFF; border-bottom:1px solid #808080; border-right:1px solid #808080;"><div class="leftSide"><a href="http://www.writeguard.com/catalog/Checks/LaserInkjet-Checks/Premium-Security-Laser-Check" class="smallTextLink">Premium Security Laser Check</a><ul style="line-height: 1.5em; font-size: 11px; margin-left: -15px;"><li style="color:red;"><strong>Buy 500 Checks, Get 500 Free Special!</strong></li><li>More than 8 security features</li><li>Thermochromic Ink</li><li>8.5" x 11" sheet 24lb MICR paper</li><li>2 perforations @ 3.5" x 7"</li></ul><div class="moreInfoButtonsNew"><a href="http://www.writeguard.com/catalog/Checks/LaserInkjet-Checks/Premium-Security-Laser-Check" class="positive"><img src="http://writeguard.com/catalog/images/new_layout/icons/information.png" alt=""/>More Info</a></div></div><div class="rightSide"><p class="ourPrice">Starting At:<br>$39.50</p></div></td>');

于 2012-01-27T21:33:15.387 回答