我想导入html文件的内容并用内容填充文本框(输入类型:“text”value =“”)。
到目前为止,我已经:
$("a.clickable").click(function(event){
$.get('site.html', function(data){
$("input#textbox").val(data);
});
});
这很好用,但我只想导入div id(或class)指定的文件的一部分,类似于使用.load时会发生的情况,如下所示:
$('#textbox').load('site.html #someid')
或(如果可能的话):
$.load('site.html #someid', function(data){...
我想我不能使用.load将导入的文本存储为变量,因此这是不可能的(对!!!)。我想也许通过使用.find('#someid')我可以从html文件中获取所需的部分。这有一个类似的主题:
JQuery .load() into variable or hidden element
...但是没有什么我似乎无法让它发挥作用!
答案 0 :(得分:1)
$.get('/your_url/', function(reply_string){
// turn reply string into a jQuery object so you can look up elements and evaluate
var retrieved_value = $(reply_string).find('#your_element').val()
$('#textbox').val(retrieved_value)
})
不是很优雅,但应该有用......
答案 1 :(得分:0)
我发现尝试在通过$(layout).find("#fragment-id")
检索的HTML上使用$.get()
只会给我一个空对象。相反,当@Matte评论另一个答案时,我将原始HTML添加到我用jQuery创建的div
。然后我可以使用find()
,获取我想要的片段,并将其存储在变量中。我能够将变量附加到目标,或稍后使用。
var $template;
$.get("layout.html", function( layout ) {
$template = $("<div></div>").html( layout ).find("#fragment-id");
$target.append( $template );
}
上面的代码将完整的片段作为jQuery对象返回,这符合我的目的。如果您只想要片段中的纯内部html,则需要使用.find("#fragment-id").html()