我使用 jQuery 框架编写了一些脚本。
var site = {
link: $('#site-link').html()
}
这会获取div site-link
中的html并将其分配给link
。我稍后将link
保存到数据库。
我的问题是我不想要html,因为我认为这是危险的,也许?
我试过了:
link: $('#site-link').val()
...但这只是给我一个空白值。
如何在没有任何标记的情况下获取div中的值?
答案 0 :(得分:2)
尝试这样做:
$('#site-link').text()
获取匹配集合中每个元素的组合文本内容 元素,包括它们的后代,或者设置文本内容 匹配的元素。
答案 1 :(得分:2)
使用.text()
jquery方法,如下所示:
var site = {
link: $('#site-link').text()
}
以下是.val()
,.html()
和.text()
执行操作的示例:jsfiddle example
答案 2 :(得分:1)
获取匹配元素集合中每个元素的组合文本内容,包括它们的后代,或者设置匹配元素的文本内容。
答案 3 :(得分:1)
使用jQuery的.text()函数获取唯一的文本。
var site = {
link: $('#site-link').text()
}
答案 4 :(得分:0)
为了避免使用html,你将需要使用jquery的text()方法。
var site = {
link: $('#site-link').text()
}
答案 5 :(得分:0)
如果您打算将结果存储在数据库中并且您担心HTML,那么使用.text()
而不是.html()
之类的东西只是一种安全幻觉。
永远不要相信来自客户端的任何内容!
客户端的所有内容都是可替换的,客户端很容易被劫持。以Tamper Data firefox插件为例,即使我母亲也可以更改发送到服务器的数据。她可以发送任何代替链接的内容。像恶意脚本,整个网站等......
在将“链接”保存到数据库之前,请务必在服务器端验证它。您可以编写正则表达式来检查string is a valid url,还是replace everything that is html。
在输出之前对html进行编码也是一个好主意。这种方式即使html进入你的数据库,编码后它也只是一个无害的字符串(还有其他的东西要注意像UTF-7,但网络是一个危险的地方)。