小编Yev*_*niy的帖子

jQuery:append()vs appendTo()

我正在使用以下代码测试jQuery的.append()vs .appendTo()方法:

$('div/>', {
    id : id,
    text : $(this).text()
    }).appendTo('div[type|="item"]#'+id);
$('div[type|="item"]#'+id).append($(this).text());
Run Code Online (Sandbox Code Playgroud)

请注意,选择器在.appendTo()和中是相同的.append(),但后者工作(在同一页面内),而前者不工作.为什么?

如何.appendTo()使用这种类型的(复杂)选择器?这两种方法的插值方式不同吗?我缺少一些语法吗?

我不想用无效的代码来混淆帖子:足以说明选择器引用的元素存在,正如.append()产生所需结果的方法所证明的那样.如果需要更多信息,请与我们联系.

谢谢!

jquery jquery-selectors jquery-append

28
推荐指数
3
解决办法
5万
查看次数

使用非字符串作为 $env: 变量

我想在环境变量中存储一个哈希表——这在 Powershell 中可行吗?

这是我测试的方法:

$env:test = @{}
$env:test
$env:test|gm
Run Code Online (Sandbox Code Playgroud)

并感到困惑,因为输出是:

System.Collections.Hashtable

类型名称:System.String

名称 MemberType 定义

---- ---------- ---------- 克隆方法 System.Object Clone()
CompareTo 方法 int CompareTo(System.Object value), int CompareTo(string strB) 。 ..

... 所以当我直接返回 $env:test 时,我得到 'Hashtable',但是当我通过管道将它传递给 get-member 时,system.string 被返回。有人可以解释这种行为吗?

powershell hashtable environment-variables

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

Powershell System.Net.WebClient身份验证

尝试从受保护的HTTP源下载文件时使用以下代码返回401 Unauthorized:

$pfile = "\\some\local\leaf\path"
$user = "MyUserName"

$pwdIn = read-host -assecurestring | convertfrom-securestring | out-file $pfile
$pwdOut = get-content $pFile| convertto-securestring

$url="http://path.to/file"
$file = "\\localpath\to\file"
$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential($user, $pwdOut)
$webclient.DownloadFile($url,$file)
Run Code Online (Sandbox Code Playgroud)

所以跳过写密码文件的步骤如下:

$pwd = read-host -assecurestring 
...
$webclient.Credentials = new-object System.Net.NetworkCredential($user, $pwd)
Run Code Online (Sandbox Code Playgroud)

但是,跳过securestring创建工作正常:

 $pwd = read-host
 ...
 $webclient.Credentials = new-object System.Net.NetworkCredential($user, $pwd)
Run Code Online (Sandbox Code Playgroud)

上面的代码不会返回任何其他错误.我在顶部测试原始代码版本时验证了目标密码文件的存在性和明显的结构有效性.整个代码在单个脚本中,因此convertto和convertfrom在执行期间具有相同的环境.我在x86和64bit PowerShell中尝试了这个.

事实上,我甚至可以将安全字符串转换回正确的基本字符串,并将其与WebClient一起使用:

$pwdtmp = get-content $pFile| convertto-securestring
$pwdOut = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwdtmp))
$webclient.Credentials = new-object System.Net.NetworkCredential($user, $pwdOut)
Run Code Online (Sandbox Code Playgroud)

因此,问题必须是使用SecureString和System.Net.NetworkCredential类,但是http://msdn.microsoft.com/en-us/library/system.net.networkcredential.aspx,以及我发现的一些例子表示SecureString应该作为第二个参数.

在撰写这篇文章时,我实际上找到了一个解决方案:

$user = "user" …
Run Code Online (Sandbox Code Playgroud)

authentication powershell webclient http

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