【问题标题】:Why won't the text of my <p> change?为什么我的 <p> 的文本不会改变?
【发布时间】:2012-05-14 10:20:21
【问题描述】:

我有一个函数,它从查询字符串中获取一个值并将其放入 p 元素中:

var globalCodice = querystring('codice');
var globalCodiceTesto = globalCodice.valueOf();
var myOfferta = $('#currentOfferta');

$('#currentOfferta').text(globalCodiceTesto); //THIS DOES NOT WORK

其中 globalCodice 是查询字符串,通过该方法获得:

function querystring(key) {
   var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
   var r=[], m;
   while ((m=re.exec(document.location.search)) != null) r.push(m[1]);
   return r;
}

标记:

<!-- header -->

    <div id='titleHeader' class='header'>
        <h3>Dettaglio Offerta</h3>
        <p id='currentOfferta' style='color:white !important'>OMFG</p>
    </div><!-- /header -->

但最终文本永远不会改变。我尝试了不同的东西,但似乎没有任何效果。为了完成这项工作,有人有什么要与我分享的吗?

edit: globalCodice 和 globalCodiceTesto 被正确检索,作为 p 元素。唯一不起作用的是 .text() 行。

【问题讨论】:

  • 尝试使用 Firebug 进行调试或至少发出警报以确保您获得 globalCodiceTesto 的值
  • 阅读编辑:它得到了正确的值。
  • 就像答案说的那样,确保在文档准备好之前不要设置它,否则它永远不会出现。我以为它已准备好文档,但我认为这可能是您的问题
  • style='color:white' 我希望你的背景不是白色的:D
  • 已准备好文档。还是不行。

标签: javascript jquery html query-string


【解决方案1】:

typeof(globalCodiceTesto)

返回String?如果你这样做会发生什么

$('#currentOfferta').text("af");

?

【讨论】:

  • Th0rndike 你试过这个吗?发生了什么?
  • 这不是解决方案,但它让我找到了解决方案。起作用的是迫使 globalCodiceTesto 成为一个字符串。我这样做了: var globalCodiceTesto = globalCodice.valueOf()+"";
  • 我正在输入一个答案,提到 globalCodiceTesto 不是字符串的事实......很高兴我首先看到了这个评论! @Willem Mulder 按正确的方向 +'d。
【解决方案2】:

你试过了吗:

$(document).ready(function() {
  $('#currentOfferta').text(globalCodiceTesto);
});

【讨论】:

  • 你的函数返回一个对象,而不是一个字符串:|
  • 当然可以,除非您使用正确的参数调用正确的 url。 (如果你的url中没有参数“codice”,它什么也找不到)
  • 这就是为什么他调用 valueOf 并将其返回给 globalCodiceTesto
  • console.log(typeof(globalCodiceTesto)) == 对象
  • 啊,我猜 exec 调用不返回字符串,很好的捕获
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多