在jQuery ajax调用以检索整个XHTML文档之后,从结果字符串中选择特定元素的最佳方法是什么?也许有一个库或插件可以解决这个问题?
如果W3C规范中的div通常允许,jQuery只能选择存在于字符串中的XHTML元素; 因此,我很好奇选择喜欢的东西<title>,<script>和<style>.
根据jQuery文档:
http://docs.jquery.com/Core/jQuery#htmlownerDocument
HTML字符串不能包含div中无效的元素,例如html,head,body或title元素.
因此,既然我们已经确定jQuery没有提供这样做的方法,我将如何选择这些元素?例如,如果您可以告诉我如何选择远程页面的标题,那将是完美的!
谢谢,皮特
嘿我正在使用ajax将html页面加载到字符串中,现在我想找到页面的标题并使用它.
现在我确实设法获得<title>使用正则表达式,但返回标签以及标题本身,我希望从字符串中提取,或者有可能在正则表达式中做到这一点?
这是我的代码:
var title = result.match(/<title[^>]*>([^<]+)<\/title>/);
Run Code Online (Sandbox Code Playgroud)
现在我怎么得到这个/之后的实际标题呢?
我正在尝试获取任意输入的URL /页面的一些页面详细信息(页面标题,页面上的图像等).我有一个后端代理脚本,我通过ajax GET使用,以返回远程页面的完整HTML.一旦我得到ajax响应,我就试图在其上运行几个jQuery选择器来提取页面细节.这是一般的想法:
$.ajax({
type: "GET",
url: base_url + "/Services/Proxy.aspx?url=" + url,
success: function (data) {
//data is now the full html string contained at the url
//generally works for images
var potential_images = $("img", data);
//doesn't seem to work even if there is a title in the HTML string
var name = $(data).filter("title").first().text();
var description = $(data).filter("meta[name='description']").attr("content");
}
});
Run Code Online (Sandbox Code Playgroud)
有时使用$("selector", data)似乎工作,而其他时间$(data).filter("selector")似乎工作.有时候,都不行.当我只检查内容时$(data),似乎有些节点通过,但有些节点就消失了.有没有人知道在完整的HTML字符串上运行选择器的一致方法?
我有一个变量var 'html',它包含一些HTML代码.其中有一个id 为divmessages.我想只使用javascript将'html'变量中的div内容转换为另一个变量.
请帮忙 ..
我有一个动态创建的HTML字符串(表行).该字符串中的行数可以大于1.
string myHtml = "
<tr>
<td class="text-left">
<label class="label-none">a.docx</label>
</td>
<td>
<label class="label-none">Manuscript </label>
</td>
<td>
<input class="del-file-cb" file-id="71" type="checkbox" />
</td>
</tr>"
etc...
Run Code Online (Sandbox Code Playgroud)
在将它插入 DOM元素(表)之前,我想检查其中是否存在具有该file-id属性的特定值的复选框输入.如果是这样,我想改变text的1日label(如该发现复选框被放置在该行中)与例如lorem,第二个label的text到如ipsum.怎么做 ?
这里还有一些有用的信息stackoverflow.com/questions/704679/parse-html-string-with-jquery
是否有一个好的JS函数或类可以在不重置现有内容的情况下无缝地将一串HTML解析到DOM中?我正在尝试找到一种简单的方法来复制表格顶部的复杂表格行.
它显然会像这样工作:
element.innerHTML = newHTML + element.innerHTML;
Run Code Online (Sandbox Code Playgroud)
但是,这会导致浏览器重新加载整个表,从而重置滚动位置并删除表中任何未保存的可编辑内容.
更新:
我没有在这个项目中使用jQuery.这是我在某处发现的一个想法,但我无法让它工作:
var templateRow = document.getElementById( 'templateRow' );
var newhtml = "<tr id='row"+lastID+"'>"+'templateRow'.innerHTML+"</tr>";
var range = document.createRange();
range.selectNode( 'templateRow' );
var parsedHTML = range.createContextualFragment( newhtml );
templateRow.appendChild( parsedHTML )
Run Code Online (Sandbox Code Playgroud) 单击选项卡时,我使用此代码调用控制器.当我点击第二个标签时,我清除第二个标签,反之亦然.问题是,我不能把我的$ .get的结果放在div(tabs-1或tabs-2)中.我看到有一个结果(数据)与firebug
任何的想法 ?
$("#tabs").bind('tabsselect', function (event, ui) {
switch (ui.index) {
case 0:
$("#tabs-2").empty();
$.post("/Controller/Index", { variable1: 1, variable2: 0 },
function (data) {
$("#tabs-1").text(html);
});
break;
case 1:
$("#tabs-1").empty();
$.post("/Controller/Index", { variable1: 2, variable2: 1 },
function(data){
$("#tabs-2").text(html);
});
break;
}
});
Run Code Online (Sandbox Code Playgroud)
Update1: 在"数据"结果中有一个......我想获取内容并将其作为HTML显示在tabs-2中.这意味着如果有我看到它们.