我在jQuery中使用$ .get请求整页,并希望获取特定元素的内容。另外,这是事情的样子:
$.get( "/page.html").done(function( data ) {
// get textArea.
});
我希望得到:
document.getElementByTagName("textArea")[0].value;
但我无法对数据执行getElementByTagName,那么最好的方法是什么?
答案 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);
});
答案 4 :(得分:0)
因为你还在使用jQuery ......你还试过$(data).find('textarea').first().val()
吗?
这假设data
是一个片段。如果不是,您将首先将其包装在div
或其他内容中。