我正在对服务器端函数进行ajax调用,该函数返回仅由两个DIVs组成的html响应,例如
<div id="divOne">text on divOne</div>
<div id="divTwo">text on divTwo</div>我能否解析标记响应以仅提取DIVs中包含的文本部分?
发布于 2010-10-03 18:55:24
如果你的success回调,假设它是function(data) {},你可以使用返回的数据作为context来查找,例如:
success: function(data) {
//if these elements are nested down in a response, in another element
var combinedText = $("#divOne, #divTwo", data).text();
//if your response contains *only* these elements
var combinedText = $(data).text();
//of again if it contains *only* these elements and you want to filter which
var combinedText = $(data).filter("#divOne").text();
}无论您的理想选择器是什么,格式都是$("selector", context)。
或者,如果您的响应只包含问题中的内容,并且它们是根级别的元素,则需要在内部.filter() instead...since $("selector", context) is a $(context).find("selector"),它将不会在返回的数据中找到根级别的任何元素。
或者,如果您专门使用.load(),则可以在末尾使用选择器来获取整个元素,如下所示:
$("#something").load("myPage #elementToGet");发布于 2010-10-03 19:10:15
您可以使用这个正则表达式,它将去掉html标记,只留下所需的数据:
String noHTMLString = htmlString.replaceAll("\\<.*?>","");你会得到
inputString.split('\n') # --> ['Line 1', 'Line 2', 'Line 3']这与上面的相同,但string模块的函数已弃用,应避免使用:
导入字符串
string.split(inputString, '\n') # --> ['Line 1', 'Line 2', 'Line 3']或者,如果希望每行都包含换行顺序(CR、LF、CRLF),请使用带有True参数的拆分线方法:
inputString.splitlines(True) # --> ['Line 1\n', 'Line 2\n', 'Line 3']希望这有助于如果你需要更多的帮助,请让我知道。
主键
https://stackoverflow.com/questions/3849462
复制相似问题