【问题标题】:How to use a variable as a DOM object within scripts如何在脚本中使用变量作为 DOM 对象
【发布时间】:2014-05-17 13:18:06
【问题描述】:

我有很多 functions 将被复制到多个实例中,我正在尝试简化所有内容并使 functions 易于重复使用。

为了避免硬编码值,我正在尝试建立一个父级 ID 以便能够更深入地运行一些 loops

http://jsfiddle.net/hgwNU/

如果我有...

HTML

<div id="one">
    <p>Hello</p>
    <p>Hello</p>
</div>

<div id="two">
    <p>Hello</p>
    <p>Hello</p>
</div>

脚本

var playerOne = $('#one');

$("p").each(function() {
    $(this).text('Changed');
});

我尝试了类似的方法:

$(playerOne + "p").each(function() {

但我收到了object conflict 错误。

如何在此示例中合并 playerOne 变量以仅针对 #one 中的 p 元素而不是所有元素?

http://jsfiddle.net/hgwNU/

【问题讨论】:

    标签: javascript jquery variables loops dom


    【解决方案1】:

    你正在寻找.find()/.children()基于你正在寻找什么样的后代

    playerOne.find('p').each(...)l //for p elements under `#one` in any level
    playerOne.children('p').each(...)l //for p elements which are direct children of `#one`
    

    【讨论】:

    • 非常好。谢谢! Fiddle。第一个例子效果最好,因为我有一些嵌套很深的后代。非常感谢!
    • @NicholasHazel 也不需要每个,你可以说playerOne.children('p').text('Changed');
    • 嗯,我的项目明显更加健壮。我只是在这里写了一个非常简单的演示。如果您想查看整个内容,请随时在此处闲逛 - Project。除了更改文本之外,我还有很多事情要做,但感谢您的详细说明:-)。只是语法上的脑残:-P
    • 既然我们在这里,还有一个快速的问题?你可以使用 $('#jQueryObjects') 作为函数的参数,即调用它们时 - functionName($('jQueryObjects'){}
    • @NicholasHazel 不在函数声明中...但是当您调用函数时,您可以将其作为参数传递,例如 function x(y) {//use y here} 然后稍后 x($('jquery'))
    【解决方案2】:

    你可以简单地使用

    $('p',playerOne).each(function(i,v){
        //....
     })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多