【问题标题】:Jquery change <p> text programmaticallyJquery以编程方式更改<p>文本
【发布时间】:2012-05-16 04:37:39
【问题描述】:

编辑:解决方案是将其添加到个人资料页面而不是性别页面。

$('#profile').live( 'pageinit',function(event){
$('p#pTest').text(localStorage.getItem('gender'));

});

我在列表视图中有一段带有 som 文本的段落,我想在单击保存后以编程方式从另一个页面更改该段落。

编辑:这是我在 profile.html 中的列表视图。当您单击该项目时,您会进入另一个页面,您可以在其中保存您的性别。我想将此列表视图中的段落更改为从其他页面更改的性别。

<ul data-role="listview"   >
    <li><a href="gender.html">
        <img src="images/gender2.jpg" />
        <h3>Gender</h3>
        <p id="pTest">Male</p>
    </a></li> </ul>

性别 html 页面只是带有两个单选按钮和一个保存按钮的基本内容。 这是我的 javascript 代码(在一个单独的文件中):

$('#gender').live('pageinit', function(event) {

    var gender = localStorage.getItem('gender');
    var boolMale = true;
    if (gender == "female") boolMale = false;
    $('#radio-choice-male').attr("checked",boolMale).checkboxradio("refresh");
    $('#radio-choice-female').attr("checked",!boolMale).checkboxradio("refresh");

    $('#saveGenderButton').click(function() {
        if ($('#radio-choice-male').is(':checked'))
            localStorage.setItem('gender', "male");
        else localStorage.setItem('gender', "female");

        $('#pTest').html('test'); //does not work
         //$('p#pTest').text('test'); //does not work
         //$('#pTest').text('test'); //does not work
        $.mobile.changePage("profile.html");
    });
});

我用 javascript 试过这个:$('p#pTest').text('test');

但是文本没有改变。 (我知道保存按钮有效)。这可能吗?

【问题讨论】:

  • 您的代码应该按原样工作。 “从另一个页面”是什么意思?
  • “单击保存后以编程方式从另一个页面更改”是什么意思?我们可以看到一些代码吗? HTML 和 JS 都可以吗?

标签: javascript jquery html jquery-mobile


【解决方案1】:

尝试以下,注意当用户刷新页面时,值再次为“男性”,数据应该存储在数据库中。

<p id="pTest">Male</p>
<button>change</button>

<script>
$('button').click(function(){
     $('#pTest').text('test')
})
</script>

http://jsfiddle.net/CA5Cs/

【讨论】:

  • 我已经尝试过了,只是在单独的文件中使用了 javascript。查看我的编辑
  • 在您对数据库发表评论后,我想通了。我只需要将其添加到个人资料页面而不是性别页面。$('#profile').live('pageinit',function(event){ $('p#pTest').text(localStorage.getItem( '性别')); });
  • 这在 iOS Safari 中有问题吗?我正在尝试更改单击时按钮的文本 $('#testbtn').click(function(){ $(''#testbtn').text('test') });其中 'testbtn' 是按钮的 ID。这适用于所有浏览器、移动设备和网络,但不会更改 iOS Safari 中的文本。
【解决方案2】:

“保存”与使用 jquery 更改段落内容完全不同。

如果您需要保存更改,则必须以某种方式将它们写入您的服务器(可能是表单提交以及所需的所有安全性和输入清理)。如果您有保存在服务器上的信息,那么您将不再更改段落的内容,而是绘制具有动态内容的段落(来自数据库或服务器在您执行“保存”时更改的文件) .

从你的问题来看,这是一个你需要做更多研究的话题。

输入页面(input.html):

<form action="/saveMyParagraph.php">
    <input name="pContent" type="text"></input>
</form>

保存页面(saveMyParagraph.php)和输出页面(output.php):

Inserting Data Into a MySQL Database using PHP

【讨论】:

    【解决方案3】:

    您似乎将单击事件包裹在自定义事件名称“pageinit”周围,您确定在单击按钮之前触发了该事件吗?

    类似这样的:

    $("#gender").trigger("pageinit");
    

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 1970-01-01
      • 2017-11-23
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2014-12-07
      • 1970-01-01
      相关资源
      最近更新 更多