如何在从jquery函数生成动态html时处理输入参数

时间:2017-06-06 10:29:12

标签: javascript jquery dynamic-html

我使用以下函数生成动态HTML。

function (content) {
    $('#divMessage').append('<span>'+ content+ '</span>');
}

此处,我在id divMessage 的div中添加内容。

此处输入参数内容可以是传递给此函数的任何文本。

当我传递包含html元素的数据时,我遇到问题,因为它会扭曲html。我不能将它粘贴在这里,因为它在堆栈溢出编辑器中也被解除了。

如何解决此问题,TIA。

enter image description here

它应该附加正在传递的内容,不想将html标签转换为html,如果传递带有数据的html标签,那么带有数据的html标签应该是输出。

2 个答案:

答案 0 :(得分:0)

要解决此问题,您只需将内容文本paser到HTML

即可

就这样做

import java.util.*;
import java.io.*;
class Pair<T>{
    final T x;
    final T y;
    Pair(T a, T b){
        this.x = a;
        this.y = b;
    }
}

public class Activities{
    private static int search(Pair<Integer> []p,int key, int l, int h)
    {
        int ll=l;
        while(l<h)
        {
            int mid = (l+h)/2;
            if(p[mid].x < key)l=mid+1;
            else if(p[mid].x == key){
                while(mid>=ll && p[mid].x == key)mid--;
                return mid+1;
            }
            else h=mid;
        }
        if(l==h && l>=0 && p[l].x>=key)return l;
        return -1;
    }
    public static void main(String[] args)throws IOException {
        final long mod = 100000000;
        BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
    while(true)
    {
        int n = Integer.parseInt(buff.readLine());
        if(n==-1)return;
        Pair <Integer> p [] = new Pair[n];
        for(int i=0;i<n;i++){
            String [] in = buff.readLine().split(" ");
            int x = Integer.parseInt(in[0]), y = Integer.parseInt(in[1]);
            p[i] = new <Integer>Pair(x,y);
        }
        Arrays.sort(p, new Comparator<Pair<Integer>>(){
            public int compare(Pair<Integer> p1, Pair<Integer> p2){
                if(p1.x == p2.x)return p1.y - p2.y;
                else return p1.x - p2.x;
            }
        });

        long dp[] = new long[n];
        dp[n-1] = 1;
        for(int i=n-2;i>=0;i--)
        {
            int idx = search(p,p[i].y,i,n-1);
            dp[i] = 1+dp[i+1];
            if(idx != -1)dp[i]=dp[i]+dp[idx];
        }
        String res = (dp[0]%mod)+"";
        while(res.length()<8)res = '0'+res;
        System.out.println(res);
    }

}
}

希望它会有所帮助!

答案 1 :(得分:0)

您可以像这样传递html值。

&#13;
&#13;
function AddContent(content) {
    $('#divMessage').append('<span>'+ content+ '</span>');
}
$("#divAppendMessage").on("click", function() {
    //$('#divMessage').html(''); // If you want to clear div before append
   var html='';
   html+='<h1>My new message</h1>';// You can add mark up like this.Be sure for closing tag.
   AddContent('<h1>My new message</h1>');// Pass html without generate markup as OP say on comment.
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='divMessage'>
</div>
<button id='divAppendMessage'>Add Message</button>
&#13;
&#13;
&#13;

可能是 this fiddle解决您的问题。在获得用户输入之前将其转换并在绑定时重置它。