我正在对服务器端函数执行ajax调用,该函数返回仅由两个DIV组成的html响应,例如
<div id="divOne">text on divOne</div>
<div id="divTwo">text on divTwo</div>
我可以解析标记响应以仅提取DIV中包含的文本部分吗?
答案 0 :(得分:3)
如果您的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()
代替...... $("selector", context)
在内部是$(context).find("selector")
,它不会在返回的数据中找到根级别的任何元素。
或者,如果你专门使用.load()
,你可以在末尾使用选择器来获取整个元素,如下所示:
$("#something").load("myPage #elementToGet");
答案 1 :(得分:1)
您可以使用此正则表达式删除html标记,只留下您需要的数据:
String noHTMLString = htmlString.replaceAll("\\<.*?>","");
你会得到
inputString.split('\n') # --> ['Line 1', 'Line 2', 'Line 3']
这与上面的相同,但不推荐使用字符串模块的功能,应该避免使用:
导入字符串
string.split(inputString, '\n') # --> ['Line 1', 'Line 2', 'Line 3']
或者,如果您希望每一行都包含中断序列(CR,LF,CRLF),请使用带有 True 参数的 splitlines 方法:
inputString.splitlines(True) # --> ['Line 1\n', 'Line 2\n', 'Line 3']
如果您需要更多帮助,希望这有帮助,请告诉我。
PK