【问题标题】:jQuery get html in div without any markupjQuery在没有任何标记的情况下在div中获取html
【发布时间】:2013-04-27 15:05:12
【问题描述】:

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

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

}

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

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

我试过了:

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

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

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

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    尝试这样做:

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

    来自jQuery API Documentation

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

    【讨论】:

      【解决方案2】:

      使用the text() method

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          像这样使用.text() jquery 方法:

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

          这是.val().html().text() 所做的示例:jsfiddle example

          【讨论】:

            【解决方案5】:

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

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

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

            【讨论】:

              【解决方案6】:

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

              永远不要相信来自客户端的任何东西!

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

              在将“链接”保存到数据库之前,您必须在服务器端对其进行验证,这一点很重要。您可以编写一个正则表达式来检查string is a valid url,或者只是replace everything that is html

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

              【讨论】:

                猜你喜欢
                • 2013-01-06
                • 2015-07-18
                • 2021-01-28
                • 2016-11-25
                • 1970-01-01
                • 2012-09-28
                • 1970-01-01
                • 2022-10-07
                • 1970-01-01
                相关资源
                最近更新 更多