输入的jquery选择器仅适用于第一个元素

时间:2013-07-04 07:58:01

标签: jquery string replace selector bigcommerce

首先,我想要实现的是在bigcommerce结帐页面上替换字符串。我正在尝试在第5步下的结帐页面中替换付款方式名称,即订单确认。我不能简单地更改html文件中的文本字符串,因为它通过快速结帐功能从bigcommerce服务器加载。

到目前为止我所做的是使用css:在技巧之后替换它。但是它与IE不兼容,因为它是输入字段。所以剩下的唯一选择是使用javascript。

这是我正在使用的当前编码:

$(document).ready(function() {
$("a.ChangeLink, input[type='submit']") .live("click", function() {

$('label.ProviderNamecheckout_eway:contains("eWay Australia")').text('Credit Card');

});
});

当我点击第一部分的第一个输入按钮时,它当前工作正常。也是一直在右边的修改链接。但它并不是我最需要的部分。在运输选择部分,我想在单击继续按钮时触发此替换功能。但它不起作用。

请帮助!!!

更新:对代码进行了一些更改,现在至少click事件适用于新的附加元素。但仍然无法取代。我认为原因是在append元素完全加载之前的替换触发器。因此无法找到正确的元素ID。

更新:问题已解决,最终未通过javascript解决。刚刚找到了改变后端支付名称的方法。

1 个答案:

答案 0 :(得分:1)

您的click应该在准备好的内部定义,并且您已经在点击内部定义了ready,这是没有意义的,ready将在页面加载结束时调用正在尝试点击事件触发时准备好调用

$(document).ready(function() {
    $("a.ChangeLink, input") .click(function() {
        alert("Handler for .click() called.");    

        //$('label.ProviderNamecheckout_eway').replaceWith('Credit Card');
        $('label.ProviderNamecheckout_eway').text('Credit Card'); 
        // or $('label.ProviderNamecheckout_eway').html('Credit Card');
    });
});

最后得到你的问题你必须在IE模式中与你一起玩css删除这两个css然后脚本将完美地工作,因为它当前它但没有显示文本,因为你已经使用了visibility: hidden;所以如果不在IE中的情况下移动这些css

.ProviderNamecheckout_eway {
visibility: hidden;
}
.ProviderNamecheckout_eway:after {
content: "Credit Card";
position: relative;
right: 106px;
visibility: visible;
display: inline;
}