我不知道我做错了什么

时间:2014-01-25 17:54:39

标签: javascript

我不确定这个JavaScript我做错了什么。我还是很新,所以我可能搞砸了所有东西。

<script type="text/javascript">
    $(document).ready(function(){
        function emailTrainer(trainersName, userName, domainName){
            var tName = trainersName;
            var uName = userName;
            var dName = domainName;
            var subject = 'Questions&#32;about&#32;training'

            document.write('<a herf="mailto:' + uName + '@' + dName '&#63;Subject=' + subject + '">Email ' + tName + '</a>');
        }
    });
</script>

HTML

<address>
    <script type="text/javascript">
        emailTrainer('Name', 'email', 'Domain');
    </script>
</address>

3 个答案:

答案 0 :(得分:4)

  1. 你在另一个函数中定义emailTrainer(没有明显的原因:它正在等待DOM准备就绪,但不在DOM上运行)但是然后尝试在全局范围内访问它(其中它不存在)。
  2. 文档加载后您正在使用document.write。这将消灭现有文档。请改用DOM manipulation
  3. 您错误拼写hrefherf
  4. 你拼错javascriptjavacript,但type属性是可选的(对于JS),因为HTML 5应该省略以避免这种拼写错误的可能性。
  5. 您错过了+dName之间的连接运算符'&#63;Subject='
  6. 您正在从jQuery调用$,但没有表明您已经加载了该库(并且,正如1中提到的那样,您没有使用它来获取任何有用的东西)

答案 1 :(得分:-1)

看起来您希望脚本呈现一些标记并将其放在页面上,从而替换脚本标记。不幸的是,现在JavaScript的运作方式。我猜你想要的是:

$(function(){
    function emailTrainer(name, userName, domain) {
        // declare your emailTrainer function as before
    };

    var $link = $(emailTrainer('Name','email','Domain');
    $('address').append($link);

});

答案 2 :(得分:-3)

<script type="text/javascript" >
    function emailTrainer(trainersName, userName,  domainName){
        var tName = trainersName;
        var uName = userName;
        var dName = domainName;
        var subject = 'Questions&#32;about&#32;training'

        document.write('<a herf="mailto:' + uName + '@' + dName '&#63;Subject=' + subject + '">Email ' + tName + '</a>');
    }
</script>

这应该有用。

从移动网站编辑,请原谅格式