使用jQuery $ .get获取页面后按标签名称获取元素

时间:2013-10-14 06:36:28

标签: javascript jquery html

我在jQuery中使用$ .get请求整页,并希望获取特定元素的内容。另外,这是事情的样子:

$.get( "/page.html").done(function( data ) {
   // get textArea.
});

我希望得到:

document.getElementByTagName("textArea")[0].value;

但我无法对数据执行getElementByTagName,那么最好的方法是什么?

5 个答案:

答案 0 :(得分:1)

我尝试使用find但是没有用,所以我最终使用了filter,并返回了我需要的textArea的值:

$.get( "/page.html").done(function( data ) {
   var textArea = $(data).filter("textarea")[0].innerText;
});

答案 1 :(得分:0)

您可以尝试使用jquery load()函数。

它将从远程服务器加载并将文档插入所选元素。

它还允许我们指定要插入的远程文档的一部分。

假设您的远程textarea的id是“远程”,并且您想要将远程内容提取到id为“local”的textarea

var result="";
$("#local").load("/page.html #remote", function(response, status, xhr){
  result=$(this).find("#remote").val();
}); 

我不确定您是否要获取远程textarea并插入当前文档的元素。

如果你只想获取远程textarea的值,你可以隐藏加载函数调用元素

希望这对你有所帮助。

答案 2 :(得分:0)

与你正在做的事情略有不同,但我认为它可以提供帮助。您可以拨打.load而不是get,然后将整个页面添加到div <div id="mydiv"></div>

var value;
$('#mydiv').load('xyz.html',function(){value=$('#mydiv').find('#mytextarea').val()})

但是如果您不希望mydiv显示您可以在主页加载后隐藏在开头,如果您也不想在页面上使用此div,则可以在上述任务之后将其删除进行。

$(document).ready(function(){
  $('#mydiv').hide();
  var value;
  $('#mydiv').load('xyz.html',function(){value=$('#mydiv').find('#mytextarea').val()});

 $('#mydiv').remove();
})

答案 3 :(得分:0)

// str代表page.html

var str = 'gibberish gibberish <textarea class="test">hello world</textarea>gibberish';

$.each( $.parseHTML(str), function( i, el ) {
    if(el.firstChild) console.log(el.firstChild);
});

小提琴:http://jsfiddle.net/ez666/7DKDk/

答案 4 :(得分:0)

因为你还在使用jQuery ......你还试过$(data).find('textarea').first().val()吗?

这假设data是一个片段。如果不是,您将首先将其包装在div或其他内容中。

相关问题