使用js或jquery替换div的特定文本消息

时间:2014-06-25 07:32:58

标签: javascript jquery innerhtml str-replace

我需要替换文字&#34;表格+验证+失败。+你+不能+提交+此+记录。&#34;在<div class="alert alert-error">内使用&#34;您没有资格进行此次购买。&#34;

<div class="alert alert-error">
<button class="close" data-dismiss="alert">×</button>
Form+validation+failed.+You+cannot+submit+this+record.
</div> 

它是一个动态代码,我想只替换该文本而不是该类中的其他文本,因为错误文本将根据页面的行为而有所不同。有什么方法我只能找到这个字符串&#34;表单+验证+失败+您+不能+ +提交本+记录&#34;并使用jquery或java脚本将其替换为自定义文本消息。

4 个答案:

答案 0 :(得分:1)

您可以使用getElementsByClassName获取所有alert alert-error个班级。然后,您可以迭代getElementsByClassName返回的HTMLCollection。使用replace更新消息,请参阅以下内容:

window.onload = function() {
  var errors = document.getElementsByClassName("alert alert-error")
  for (var i = 0; i < errors.length; i++) {
    var div = errors.item(i)
    div.innerHTML = div.innerHTML.replace("Form+validation+failed.+You+cannot+submit+this+record.", "User Authentication failed.")

  }
}
<div class="alert alert-error">
  <button class="close" data-dismiss="alert">×</button>
  Form+validation+failed.+You+cannot+submit+this+record.
</div>

答案 1 :(得分:0)

这是一件很脏的事情,但这可以满足您的需求。

$('div[class="alert alert-error"]:contains("Form+validation+failed.+You+cannot+submit+this+record.")')
    .html('<button class="close" data-dismiss="alert">×</button>You are not eligible to make this purchase.');

提示: 如果您认为不会与其他人发生冲突,您也可以使用$(.alert-error:contains("Form+validation+failed.+You+cannot+submit+this+record."))选择div DOM元素

代码将首先选择<div class="alert alert-error">并检查给定内容。如果找到匹配项,它将使用div内传递的内容替换所选.html()内的完整HTML。现在,您必须传递文本旁边的按钮的HTML,因为没有办法(我不知道)只能在div中选择您想要的字符串。如果字符串在包装器中,那么使用.replace()选择和替换它会更容易和更好。

FIDDLE

或许,你应该看看给出这个“动态内容”的代码。您可以轻松地在“动态内容”周围添加类似<span id="dynamic"></span>的包装器,然后再将其传递给此处。如果你能做到这一点,你可以轻松地做一些像

这样的事情
$('#dynamic:contains("Form+validation+failed.+You+cannot+submit+this+record.")').text('You are not eligible to make this purchase.');

FIDDLE

答案 2 :(得分:-1)

如果您使用span标记包装文本,则可以轻松完成替换。试试:

<div class="alert alert-error">
<button class="close" data-dismiss="alert">×</button>
<span id="text_to_replace">Form+validation+failed.+You+cannot+submit+this+record.</span>
</div> 

要用新的文本替换现有文本,您应该使用它:

$('#text_to_replace').html('You are not eligible to make this purchase.');

答案 3 :(得分:-1)

以跨度或其他控件呈现警报。

因为把你的文字放在div中就是编程的床上练习。

以下是Fiddle

检查小提琴你会得到答案。

$( ".close" ).click(function() {
  $(".message").html("Your Alert Message");
});