【问题标题】:Change an element's text without affecting sibling tags (jQuery)在不影响兄弟标签的情况下更改元素的文本 (jQuery)
【发布时间】:2010-02-03 13:12:03
【问题描述】:

我正在尝试用 jQuery 修改这段 HTML 以删除重复的箭头:

<div class="breadcrumb">
<a href="/spa/">Home</a> »  » <a href="/spa/image/tid">Image galleries</a>
</div>

但是,我运气不佳,因为使用 replace() 函数替换字符串似乎也去除了 HTML 标签,留下:

<div class="breadcrumb">Home » Image galleries</div>

我现有的狡猾代码是:

$('.breadcrumb').each(function() { 
    var mytext = $(this); 
    var mytext2 = mytext.text(); 
    mytext.text(mytext2.replace(' » » ',' » ')); 
});

有什么想法吗?

干杯, 詹姆斯

【问题讨论】:

  • 我们需要查看 jQuery 代码来诊断这个问题。
  • 我明白标记不应该在理想情况下使用 jQuery 来修复,但是我不想修改它的 Drupal 方面,原因是现在太长了..!我现有的狡猾代码是: $('.breadcrumb').each(function() { var mytext = $(this); var mytext2 = mytext.text(); mytext.text(mytext2.replace(' » » ', ' » ')); });
  • 这是因为您使用的是.text() jQuery 方法。您需要改用.html() - 请参阅我的答案以获取更多信息。

标签: jquery html drupal


【解决方案1】:

听起来您正在使用innerText 或jQuery 的.text() 修改代码。使用这些时,HTML 被剥离,只返回文本。请改用.innerHTML.html()

使用你的“狡猾”代码:

$('.breadcrumb').each(function() {  
    var mytext = $(this);  
    var mytext2 = mytext.html();  
    mytext.html(mytext2.replace(' » » ',' » '));  
});

【讨论】:

    【解决方案2】:

    您可以通过主题的 template.php 中的这些删除箭头:http://api.drupal.org/api/function/theme_breadcrumb/6 作为 YOURTHEME_breadcrumb 函数。

    【讨论】:

    • +1 这是 Drupal 的方式。 JavaScript 是一个很棒的工具,但不是这里的解决方案。
    猜你喜欢
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多