推送方法包含>在js代码中

时间:2013-06-12 20:46:57

标签: javascript jquery jquery-ui javascript-events

我正在研究大量的代码,但他的问题是我不知道一条特定的线路在做什么...... 他们在这个推送方法中包含了这个符号> .. 我试着提醒,但无法弄清楚。 你能告诉我它做了什么......

    // create a UL element
var ul = $('<ul></ul>');

// add some LI elements
ul.append(
    $('<li class="bear" data-type="panda">panda bear</li>'),
    $('<li class="bear" data-type="koala">koala bear</li>'),
    $('<li class="wallaby" data-type="kangaroo">kangaroo</li>')
);

// this won't work because our UL is not in the dom yet
console.log($('.bear').length); //=> 0

// let's just pick the bears in our UL using our UL as the context
var bears = $('.bear', ul);
console.log(bears); //=> [li.bear, li.bear]

// lets loop through and see data attributes
bears.each(function() {
    console.log($(this).attr('data-type'));
});
//=> "panda"
//=> "koala"

2 个答案:

答案 0 :(得分:2)

似乎htmlArr用于输出HTML - 可能使用像document.write这样的东西; htmlArr.push("'>")正在推送单引号后跟>来关闭之前打开的属性和HTML代码。

答案 1 :(得分:1)

htmlArr可能是一个javascript数组对象,而push()方法会向数组中添加一个元素。请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

但是,您在调试/警告语句中使用.push方法,这会修改数组的内容。我怀疑这是你打算做的。此外,push方法的返回值是该修改数组的新长度,可能与您对alert语句中的输出所期望的长度不同。

如果要在某个时刻检查数组的内容,可以尝试console.log(htmlArr),它将在开发人员控制台中以一种非常易读的格式输出数组的内容(https://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers )。

如果需要/想要使用alert语句进行调试,可以使用数组上的.join方法将其转换为字符串。试试alert(htmlArr.join(''));。 join方法不会修改数组,因此在调试时可以安全地使用它。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join

或者,学习使用浏览器开发人员控制台的断点功能,并在逐步执行代码时检查对象的值。这是一个链接,可以很好地介绍Chrome浏览器。 https://developers.google.com/chrome-developer-tools/我相信您可以找到您选择的浏览器的其他介绍。