【问题标题】:how can I replace div class text inside div id?如何替换 div id 中的 div 类文本?
【发布时间】:2014-06-03 08:51:02
【问题描述】:

我的 squarespace 网站中有以下 div:

<div id="text-yui_3_10_1_1_1397493196442_28869" class="form-item field text required error">
<div class="field-error">Subject is required.</div>

<div id="number-yui_3_10_1_1_1397494940010_32253" class="form-item field number required error">
<div class="field-error">Phone is required.</div>

我想用 jquery 更改“字段错误”的文本(“需要主题”/“需要电话”)

编辑:抱歉,上面的所有代码似乎只有在按下“提交”按钮时才可见。

按钮的代码如下:

<input class="button sqs-system-button sqs-editable-button" type="submit" value="Submit">

是否需要将替换代码与按钮操作链接?

edit2:好的,我找到了提交按钮的表单代码:

<form onsubmit="return (function(form) { Y.use ('squarespace-form-submit', 'node', function (Y) { (new Y.Squarespace.FormSubmit({ formNode: Y.Node(form) })).submit('534c11ade4b0c1a4ea57934b', '53488d92e4b0f26be11d5d68') }); return false;})(this)" method="POST" action="website_link" autocomplete="on">

谢谢!

【问题讨论】:

  • 向我们展示您尝试过的实际代码,而不是笼统的示例。
  • 也许它不起作用,因为没有段落,也没有任何 ID 为 #example 的元素?
  • 我添加了实际代码!

标签: jquery class html replace


【解决方案1】:

我必须猜测你的确切意思,但考虑到你展示的 DOM,我认为这是一个很好的猜测。我想您正在尝试更改多个文本并且它们正在合并,因为您正在获取包含多个元素的 .field-error 的文本。你必须单独做,试试这样:

JSFiddle

$(".field-error").each( function() {
    $(this).text($(this).text().replace("required", "optional"));
});

这将遍历选择器 (.field-error) 上的每个匹配项并单独替换它们。如果您执行$(".field-error").text($(".field-error").text().replace("required", "optional")); 之类的操作,您最终会得到合并文本,因为每个.field-error 将包含所有.field-error 中的文本。


看到您的更新,您的 DOM 似乎也有问题。试试这个:

JSFiddle

HTML:

<div id="text-yui_3_10_1_1_1397493196442_28869" class="form-item field text required error">
<div class="field-error">Subject is required.</div>
</div>

<div id="number-yui_3_10_1_1_1397494940010_32253" class="form-item field number required error">
<div class="field-error">Phone is required.</div>
</div>

代码:

$fe = $("#text-yui_3_10_1_1_1397493196442_28869 .field-error");
$fe.text($fe.text().replace("Subject is required.", "test"));

有了最新信息...试试这个:

function replacementSubmitFunction() {
    return (function (form) {
        Y.use('squarespace-form-submit', 'node', function (Y) {
            (new Y.Squarespace.FormSubmit({
                formNode: Y.Node(form)
            })).submit('534c11ade4b0c1a4ea57934b', '53488d92e4b0f26be11d5d68')
        });
        $(".field-error").each(function () {
            $(this).text($(this).text().replace("required", "optional"));
        });
        return false;
    })(this)
}
$("form").get(0).onsubmit = replacementSubmitFunction;

【讨论】:

  • 感谢您的帮助。我再次编辑它,我现在意识到有一个提交按钮,只有当它被按下时,div 代码才可见。替换代码是否需要链接到按钮?
  • 差不多了,我猜。在提交后调用该函数;但 $fe 替换代码没有。任何替代代码?也许代码需要在提交按钮之后运行?我在想,因为字段错误只有在我点击按钮后才可见
  • @user3507859 如果没有看到完整的内容,很难判断。当您单击按钮时,我猜测正在提交表单并刷新页面?
  • 编辑:页面不会重新加载。我不明白为什么它不起作用。我在小提琴中复制了完全相同的代码,但它不起作用。
  • 你的 HTML 也匹配吗?您的 js 控制台中是否出现任何错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
相关资源
最近更新 更多