JS / JQuery:不能追加html多行

时间:2018-03-13 00:03:29

标签: javascript php jquery html

我在div上返回数据时遇到问题

这个函数不适用于大于一行代码的文件,或者我认为可能是一个字符串。

我该怎么办?

<ul class="dropdown-menu">
  <li id="uniqueId01" class="displayPage">Home</li>
</ul>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

$('.dropdown-menu li').on('click', function(event){
  var menu_id = event.currentTarget.id;
  if($(this).hasClass('displayPage')) {

    getMenu(menu_id);
    event.stopPropagation(); //Stop les event JS qui suivent
  } else {
    $(this).find('ul').toggle();
    getMenu(menu_id);
  }

});

function getMenu(menu_id) {
  console.log(menu_id);
  switch(menu_id) {
    case 'uniqueId01':
      menu1();
      break;
    case 'uniqueId02':
      menu2();
      break;
    case 'uniqueId03':
      menu3();
      break;
    case 'uniqueId04':
      menu4();
      break;
    case 'uniqueId05':
      menu5();
      break;
    case 'uniqueId06':
      menu6();
      break;
    default:
      console.log("default case");
      break;
  }
}

function menu1() {
  console.log('menu 1 ');
  $('#wrapper_page_desktop_content').html( 'ok 1' );
}

function menu2() {
  console.log('menu 2 ');
  $('#wrapper_page_desktop_content').html( 'ok 2' );
}

function menu3() {
  console.log('menu 3 ');
  $('#wrapper_page_desktop_content').html( 'ok 3' );
}

</script>

  <div id="wrapper_page_desktop_content"></div>

进入这个

$('#wrapper_page_desktop_content').html( 'CONTENT' );

我无法附加超过一行内容(平面php文件)。

请帮助

我不知道javascript,如果你想我能回复你的基础设施问题!

本杰明

ps通常你不能显示这个

<html>

ONE LINE
</br>
TWO LINE
</html>

实际上我无法在包含多行代码的文本或内容的位置显示包含的php文件

如果我在文件php中返回,则第二行将文件设置为不显示

function menu1() {
    console.log('menu 1 ');
    $('#wrapper_page_desktop_content').html( '<?php include app_dir . 
'template/desktop/content/corporate01/test.php'; ?>' );
}

2 个答案:

答案 0 :(得分:0)

html():

定义的JQuery API
  

获取匹配集中第一个元素的HTML内容   元素或设置每个匹配元素的HTML内容。

所以你遇到的问题是你的内容被解释为html元素而且元素不是visialbe。

如果您想将它们显示为纯文本,可以使用text()

text()已定义

  

我们需要知道此方法会转义提供的字符串   必要的,以便它在HTML中正确呈现。为此,它打电话   DOM方法.createTextNode()不会将字符串解释为   HTML。

此功能可以帮助您逃避内容。

<ul class="dropdown-menu">
  <li id="uniqueId01" class="displayPage">Test1 By html()</li>
  <li id="uniqueId02" class="displayPage">Test2 By text()</li>
  <li id="uniqueId03" class="displayPage">Test3 By html()</li>
</ul>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

$('.dropdown-menu li').on('click', function(event){
  var menu_id = event.currentTarget.id;
  if($(this).hasClass('displayPage')) {

    getMenu(menu_id);
    event.stopPropagation(); //Stop les event JS qui suivent
  } else {
    $(this).find('ul').toggle();
    getMenu(menu_id);
  }

});

function getMenu(menu_id) {
  console.log(menu_id);
  switch(menu_id) {
    case 'uniqueId01':
      menu1();
      break;
    case 'uniqueId02':
      menu2();
      break;
    case 'uniqueId03':
      menu3();
      break;
    default:
      console.log("default case");
      break;
  }
}

function menu1() {
  $('#wrapper_page_desktop_content').html( 'ok 1' );
}

function menu2() {
  $('#wrapper_page_desktop_content').text( "'<?php include app_dir . 'template/desktop/content/corporate01/test.php'; ?>'" );
}

function menu3() {
  $('#wrapper_page_desktop_content').html( '<p style="background:red">rendered as html element</p>' );
}

</script>

  <div id="wrapper_page_desktop_content"></div>

答案 1 :(得分:0)

  1. 你需要像json_encode一样转义,直接从php中分配js值。
  2. const { createLogger } = require('redux-logger');
    const logger = createLogger();
    middlewares.push(logger);
    
    1. 如果要从服务器检索数据,最好使用ajax。
    2. 来解决你的问题。

      var foo ="bar"; //valid
      var foo="bar\
      \
      hshsj\
      ghhhhhh";//valid
      /*what are you doing:*/
      var foo="bar
      
      ghhsjs
      ghhi";//invalid