2013-08-01 134 views
1

HTML:從textarea的獲取VAL()

<textarea name="input" cols="50" rows="10" id="input"></textarea> 
<input name="submit" id="submit" type="button" value="Go" /> 
<br /><br /> 
<textarea name="output" cols="50" rows="10" id="output"></textarea> 

然後我輸入下面的HTML到上(#INPUT textarea的)的瀏覽器。我怎樣才能點擊go按鈕並通過id block1獲得'Some text 1'並在(#output textarea)中顯示它。

<div id="block1">Some text 1<div> 
<div id="block2">Some text 2<div> 

JS:

$('#submit').click(function(){ 
$('#output').val({{{#input.val-->#block1.val}}}); 
}); 

我的目標是在#INPUT文本區域鍵入一些HTML,那麼它會替代ID和輸出#output textarea的文本....

+0

嘗試$('#output')。html() 順便說一句..缺少引號..錯字? – madhairsilence

回答

3

好的,你的問題有點混亂,但我想我明白了。你想在你的textarea中輸入HTML,然後用JQuery解析它以得到block1的值,然後輸出到另一個textarea。

這將工作:

//get the input value (html) 
var input = $("#input").val(); 

//convert to JQuery object 
var html = $("<div/>"); 
html.html(input); 

//get the value of block1 
var block1 = html.find("#block1").text(); 

//set this to output 
$("#output").val(block1); 

Here is a working example,但你需要確保你的輸入HTML是有效的...

<div id="block1">Some text 1</div> 
<div id="block2">Some text 2</div> 

通知使用</div>

+0

對不起,我的html無效..... XD 非常感謝您的幫助和示例。 – user2641132

-1

要示出了一個文本區域的另一箇中的值:

$('#output').val($('#input').val());

Ť o顯示一個元素的內部HTML中的textarea:

$('#output').val($('#myelem').html());

如果只顯示文本:

$('#output').val($('#myelem').text());

Click here to read about val().

+0

這不會過濾textarea中的HTML。第一行將完全複製內容。其他兩行不起作用,因爲textarea HTML內容不是DOM的一部分 – devnull69

+0

不是嗎?如果你在textarea中鍵入HTML並使用'val()'來檢索它,你可以在另一個函數中使用包含HTML的字符串,例如'html()'。 – Jared

+0

如果OP實際解釋他想做什麼,這將會非常有幫助。我將問題解釋爲「我想從一個textarea獲取HTML並將其插入另一個文本」。 – Jared

-2

嘗試以下操作:

$('#submit').click(function(){ 
    var $inp = $("#input");  
    var $div = $("<div/>",{"html":$inp.val(), "id":"block1"});  
    $("#output").val($div.html() + " By " + $div.attr("id")); 
}); 

工作在這裏撥動:http://jsfiddle.net/3b5cV/2/

+0

這不會過濾textarea內部的HTML。它只會完全複製內容 – devnull69

+0

仍然無法正常工作。在DOM – devnull69

+0

中沒有#block1或#block2元素仍然是一個小姐......您將完整的textarea內容複製到div中,然後複製已經在您剛剛複製的textarea HTML中的id「block1」 – devnull69

0

您需要從textarea獲取.val(),通過用$()方法包裝它,然後過濾該對象,將其解釋爲jQuery對象

var theTextareaHTML = $('#input').val(); 
var $HTMLasObject = $('<div/>').html(theTextareaHTML); 
var contentFromblock1 = $HTMLasObject.find('#block1').text(); 
$('#output').val(contentFromblock1); 

編輯:添加缺少的包裝元素,這要歸功於musefan

編輯:對不起,仍然有一個小故障。 (http://jsbin.com/ecuqug/1

+0

你能給我一個jsfiddle的例子嗎?我無法讓它工作。 – user2641132