2012-04-26 109 views
0

我有一个div的文本框:获取文本框HTML和值与jQuery

<div id="divTest"> 
    <input type="text" id="txtText"> 
</div> 

假设用户键入一个单词到文本框,我想获得文本框HTML 用的jQuery的方法。值用户在键入我曾尝试下面的代码:

$('#btnTest').click(function(){ 
    alert($('#divTest').html()); 
    e.preventDefault(); 
});​ 

但这只是给我的文本,而不是HTML +的文本中的文本价值的HTML。

Here是一个jsFiddle的问题。

+0

你想输入过的HTML? – 2012-04-26 19:37:26

+0

是的,我想输入HTML的嵌入式值 – Coltech 2012-04-26 19:38:40

+0

你的意思是像(只有IE).outerHTML – 2012-04-26 19:55:18

回答

1
var html_input = $("#divTest").html(); 
var val = $("#txtText").val(); 
var input = html_input.slice(0,-1) + " value='" + val + "'>"; 
alert(input); 
+0

好的,这对于这个例子有效。但它不会缩放到其他输入元素,或者div中有多个输入元素。 – Coltech 2012-04-26 19:47:22

+1

@Coltech:好的,你没有说多个输入。只需使用.each()并获取每个案例的val和html和输入。 – Stefan 2012-04-26 19:48:52

+0

@Coltech:你可以使用'split()'将'$(“#divTest”)。html()'返回的字符串中的'>'分隔符的html_input分割成数组,并为每个case检索html_input使用'$(“#divTest:input”)的'index'。each(function(index){etc。})' – Stefan 2012-04-26 20:05:04

0
var html = $('#divTest').html(); 
var value = $('#divTest').val(); 
var message = html + value; 
+0

这是行不通的,你会将该值附加到HTML,它看起来像''''' – gcochard 2012-04-26 19:39:29

+0

对不起,不会工作,只是连接将输入值放到HTML的末尾。我需要带有内嵌值的HTML,以便它能正确呈现。 – Coltech 2012-04-26 19:40:00

+0

我不认为有一个函数可以同时提取值和html。我会得到html,声明和数组,循环访问html的每个字符,直到获得'>',然后添加“Value =”值并连接字符剩下的部分。 – Machinegon 2012-04-26 19:42:27