jQuery在div中获取html而没有任何标记

时间:2013-05-03 08:57:14

标签: javascript jquery

我使用 jQuery 框架编写了一些脚本。

var site = {
link: $('#site-link').html()

}

这会获取div site-link中的html并将其分配给link。我稍后将link保存到数据库。

我的问题是我不想要html,因为我认为这是危险的,也许?

我试过了:

 link: $('#site-link').val()

...但这只是给我一个空白值。

如何在没有任何标记的情况下获取div中的值?

6 个答案:

答案 0 :(得分:2)

尝试这样做:

$('#site-link').text()

来自jQuery API Documentation

  

获取匹配集合中每个元素的组合文本内容   元素,包括它们的后代,或者设置文本内容   匹配的元素。

答案 1 :(得分:2)

使用.text() jquery方法,如下所示:

    var site = {
        link: $('#site-link').text()
    }

以下是.val().html().text()执行操作的示例:jsfiddle example

答案 2 :(得分:1)

使用the text() method

  

获取匹配元素集合中每个元素的组合文本内容,包括它们的后代,或者设置匹配元素的文本内容。

答案 3 :(得分:1)

使用jQuery的.text()函数获取唯一的文本。

var site = {
link: $('#site-link').text()

}

答案 4 :(得分:0)

为了避免使用html,你将需要使用jquery的text()方法。

var site = {
link: $('#site-link').text()

}

http://api.jquery.com/text/

答案 5 :(得分:0)

如果您打算将结果存储在数据库中并且您担心HTML,那么使用.text()而不是.html()之类的东西只是一种安全幻觉。

永远不要相信来自客户端的任何内容!

客户端的所有内容都是可替换的,客户端很容易被劫持。以Tamper Data firefox插件为例,即使我母亲也可以更改发送到服务器的数据。她可以发送任何代替链接的内容。像恶意脚本,整个网站等......

在将“链接”保存到数据库之前,请务必在服务器端验证它。您可以编写正则表达式来检查string is a valid url,还是replace everything that is html

在输出之前对html进行编码也是一个好主意。这种方式即使html进入你的数据库,编码后它也只是一个无害的字符串(还有其他的东西要注意像UTF-7,但网络是一个危险的地方)。