使用带有两个字符串的标记和值的函数

时间:2015-11-22 08:42:28

标签: javascript jquery html

我有一个问题,我一直试图弄清楚几个小时,但问题是,我不知道我被要求做什么,所以我甚至不知道从哪里开始这个问题。我在编码方面没有受过教育,根本不知道我的第一步是什么以及我将如何处理这个问题。这个问题给了我HTML代码并问我以下内容:

  

编写一个以两个字符串作为参数的函数replace(tag,value)。第一个是标签(例如" item"(没有引号),第二个是替换值(例如,"磁通电容"(没有引号)。此函数应该替换innerHTML具有指定值的给定标记的元素。如果标记不存在,则您的函数应显示警告以指示未找到标记。通过定义与格式按钮关联的format()函数来测试代码用“史密斯先生”,“发票”和“123”,“'''使用'磁通电容器'替换”致敬“#39;并且'威胁'请不要让我生气。'

     

编写一个函数clearit(),删除所有内容   标记中包含id ='按钮'的页面。不要以为这个   '按钮'标签只包含两个项目。

继承html代码:

<html>
    <head>
        <script src="q1.js" type="text/javascript"> </script>
    </head>
    <body>
        Dear <span id="salutation">Name</span>;
        <p>
            It has come to our attention that your invoice <span id="invoice">ID</span>
            has yet to be paid. It has now been <span id="time">some time</span> since
            you received <span id="item">the material</span> from Evil Incorporated. Please
            remit payment immediately. <span id="threaten"></span>
        </p>
        Yours sincerely,<br>
        <br/>
        <br/>
        J. Smith, Accounting
        <div id="buttons">
            <center>
                <button onclick="format()">Format</button>
                <button onclick="clearit()">Clear</button>
            </center>
        </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

为了帮助您入门,我已经使用您可以一步一步填写的功能注释了规范。请注意,我们无法使用getElementsByTagName,因为替换不会采用一个参数来指定它应该与哪些标签一起运行。因此,我已经假设规范在谈到标签时真正意味着ID。

// `id` and `value` are Strings
function replace(id, value) {

  // Get the element with id `id`
  var elmt = /* (Task 1) Look into `document.getElementById` */

  // If the element is not found, display an alert.
  if (/* (Task 2) Check if `elmt` is falsy */) {

    // (Task 3) Display the alert here.

  // Otherwise, replace the contents.
  } else {

    // (Task 4) set `elmt`'s innerHTML to `value`.

  }

}

以下是测试助手。

function format() {
  replace('salutation', 'Mr. Smith');   
  replace('invoice', '123'); 
  replace('item', 'flux capacitor');
  replace('threaten', 'Please do not make me angry.');
}

function clearit() {
  replace('buttons', '');
}