如何从javascript变量值中删除<p>标签

How to strip <p> tags off of a javascript variable value?

本文关键字:标签 删除 javascript 变量值      更新时间:2023-09-26

我一直在构建这个日历事件功能,但遇到了一个障碍。我有两个文件正在为此工作

  1. 我的主日历文件,主要填充了jQuery和javascript,以及
  2. 一个 PHP 文件,用于查询 MySQL 数据库以查找事件。

我能够使用以下脚本使用 jquery (ajax) 将数组从另一个文件拉到我的主日历页面:

$(document).ready(function(){
    $("p #1").load("events_array.php #3");
});     
var event_title = "<p id='1'> </p>";

然后,当我使用

document.write(event_title);

但是,每当我将变量event_title插入日历脚本的标题字段中时,它都不会输出相同的结果......相反,它输出文字

<p id='1'></p>

请参阅我将变量插入到下面的日历脚本:

$(document).ready(function(){
    $("p #1").load("events_array.php #3");
});     
var event_title = "<p id='1'> </p>";
$('#example-fullcalendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: [
        {
            title: event_title,
            start: new Date(y, m, 1)
        },

请参阅上述代码块的倒数第二行:title: event_titleevent_title是我在脚本开头创建的变量。当我现在查看此页面时,它输出的不是"event_title"的变量值,而是仅输出创建变量中包含的段落标签。

那么如何从event_title中删除段落标签呢?剩下的就是我使用 jQuery ajax 脚本检索到的另一个 php 文件中的数组值?

代码当前将字符串作为 event_title 传递,这与你使用 ajax 加载的数据无关。您可以使用.html()来检索加载的内容:

// ... snip
events: [
    {
        title: $('#1').html(),
        start: new Date(y, m, 1)
    },

但是,如果您只是使用 .load() 来获取 HTML 以传递给 fullcalendar,则应改用 $.get(),因为没有理由用这些信息污染您的 DOM:

$.get('events_array.php', function (html) {
    var event_title = $(html).find('#3').html();
    $(document).ready(function(){
        // then fullcalendar init
        $('#example-fullcalendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            editable: true,
            events: [
                {
                    title: event_title,
                    start: new Date(y, m, 1)
                },
            // ...
    });
});  

如果你使用的是jQuery,你可以将'event_title'包装在$()中,并调用text()来调用它。

$('<p>event_title here</p>').text()将剥离 html 并生成event_title here