小编Cor*_*ing的帖子

jQuery .wrap()不起作用

我可能做错了什么,但我已经尝试了各种各样的东西,似乎无法获得包装的jQuery对象的集合.以下只输出链接HTML,解包.有任何想法吗?

$.each(sitemapSections, function(i) {
  var $sitemapSection = $(sitemapSections[i]);
  var $primary = $sitemapSection.find('a[data-level="1"]').wrap('<h3></h3>');

  $dropdownSections[i].html($primary);
});
Run Code Online (Sandbox Code Playgroud)

编辑 - 这是标记(清理):

<li id="product-solutions"><a href="#link" class="alpha grid-6">Products &amp; Solutions</a>

  <div id="ps-dropdown" class="dropdown-menu grid-20">
    <div class="ps-dropdown-section">

    </div><!-- .ps-dropdown-section -->

    <div class="ps-dropdown-section">

    </div><!-- .ps-dropdown-section -->

    <div class="ps-dropdown-section">

    </div><!-- .ps-dropdown-section -->
  </div><!-- .dropdown-menu -->
</li>
Run Code Online (Sandbox Code Playgroud)

更新 - 我明白了!提到parent()的评论是我所遗漏的.这是最终的代码:

$.each(sitemapSections, function(i) {
  var $sitemapSection = $(sitemapSections[i]);
  var $primary = $sitemapSection.find('a[data-level="1"]').wrap('<h3></h3>').parent();

  $dropdownSections[i].html($primary);
});
Run Code Online (Sandbox Code Playgroud)

jquery

13
推荐指数
1
解决办法
9965
查看次数

全局JavaScript变量范围:为什么这不起作用?

所以我正在玩JavaScript并遇到了我认为奇怪的事情.有人能够解释以下内容吗?(我已将警报值包含在评论中)

为什么foo()内的第一个警报(msg)返回undefined而不是外部

var msg = 'outside';

function foo() {
  alert(msg); // undefined

  var msg = 'inside';
  alert(msg); // inside
}

foo();    
alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

考虑到这些都很好:

var msg = 'outside';

function foo() {
  alert(msg); // outside
}

alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

和:

var msg = 'outside';

function foo() {
  var msg = 'inside';
  alert(msg); // inside
}

alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

javascript scope

10
推荐指数
1
解决办法
7127
查看次数

jQuery data()和'changeData'事件

我可以click向HTML元素添加一个事件并让click事件更新$(document).data(key,value).

然后这将触发$(document).bind('changeData', function() {...})).知道这一点,找出更新哪个HTML元素的最佳方法是$(document).data()什么?

例如:

$(document).bind('changeData', function {
  // get the anchor that set $(document).data()
});

$('a').click(function() {
  $(document).data('key', 'value');
});
Run Code Online (Sandbox Code Playgroud)

jquery

7
推荐指数
1
解决办法
8156
查看次数

提交表单的事件监听器

我已经为表单提交编写了一个事件监听器,这会导致我遇到一些问题.在文本字段内按"输入"时一切正常.但是,我有一个span(带有background-image),通过click事件提交表单.这不能正常工作,我无法弄清楚原因.

这是基本的HTML:

<form name="myForm">
  <input type="text" name="search" />
  <span id="search-button"></span>
</form>
Run Code Online (Sandbox Code Playgroud)

这是事件监听器的JS:

function evtSubmit(e) {
  // code
  e.preventDefault();
};

var myform = document.myForm;
if (myform.addEventListener) {
  myform.addEventListener('submit', evtSubmit, false);
}
Run Code Online (Sandbox Code Playgroud)

这里是'span'及其click事件的JS:

var searchButton = document.getElementById('search-button');
if (searchButton) {
 searchButton.onclick = function() {
  document.myForm.submit();
 };
}
Run Code Online (Sandbox Code Playgroud)

注意:span的click事件的JS位于单独的JS文件中且无法访问atm,因此更改该脚本不是一个选项.如果解决此问题的唯一方法是更新该文件,我可以...但由于我无法控制的进程,这要困难得多.

javascript javascript-events form-submit

5
推荐指数
1
解决办法
2万
查看次数

转义正则表达式中的变量

我试图获取输入文本字段的值,并在正则表达式中使用它.这是我必须匹配一行的开头.

regex = new RegExp('^' + inputValue, 'i')
Run Code Online (Sandbox Code Playgroud)

它对于以字母数字字符开头的常规字符串工作正常,但我也使用它来获取金额.当输入字段以'$'(美元符号)开头时,我会得到不同的结果.

如何将上面的变量转义为一个简单的字符串?我试过这个,但没有运气:

regex = new RegExp('^[' + inputValue + ']', 'i')
Run Code Online (Sandbox Code Playgroud)

javascript regex

5
推荐指数
1
解决办法
698
查看次数

Ruby正则表达式使用ruby命令但不是shebang

我在ruby文件中有以下2个正则表达式.当我使用ruby命令时它们运行正常,但如果我尝试通过./apachereport.rb它运行它会产生错误.

正则表达式:

urls = parse(@file, /(?<=GET )\S+/)
codes = parse(@file, /(?<=HTTP\/[0-9]\.[0-9]" )\S+/)
Run Code Online (Sandbox Code Playgroud)

错误:

./apachereport.rb:34: undefined (?...) sequence: /(?<=GET )\S+/
./apachereport.rb:47: undefined (?...) sequence: /(?<=HTTP\/[0-9]\.[0-9]" )\S+/
Run Code Online (Sandbox Code Playgroud)

我正在使用的shebang如下,这似乎与其他ruby文件一起使用:

#!/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

ruby regex shebang

3
推荐指数
1
解决办法
112
查看次数

节点生成子进程在 Windows 中不起作用

我有一个在 Windows 上使用 spawn 的简单脚本设置,其输​​出是:

spawn error: Error: spawn dir ENOENT
spawn child process closed with code -4058
Run Code Online (Sandbox Code Playgroud)

这是代码:

const spawn = require('child_process').spawn;

const spawnTest = (() => {
  const dir = spawn('dir');

  dir.stdout.on('data', (data) => {
    console.log(`spawn stdout: ${data}`);
  });

  dir.stderr.on('data', (data) => {
    console.log(`spawn stderr: ${data}`);
  });

  dir.on('error', (code) => {
    console.log(`spawn error: ${code}`);
  });

  dir.on('close', (code) => {
    console.log(`spawn child process closed with code ${code}`);
  });

  dir.on('exit', (code) => {
    console.log(`spawn child process exited with code ${code}`); …
Run Code Online (Sandbox Code Playgroud)

windows spawn node.js

2
推荐指数
1
解决办法
5094
查看次数