如何获取具有数据绑定属性的特定元素并立即调用(现在使用now-active)?

时间:2015-02-18 08:48:04

标签: javascript jquery dom data-binding knockout.js

<div class="container">

    <div class="well" data-id="myApp">

        // Data-Bind is Here
        <input type="text" value="" class="form-control input-sm" 
               data-bind="value:name,valueUpdate:'afterkeyup'" />
        // Data-Bind is Here


        <p class="info" data-bind="text:name"></p>

        <button class="btn btn-success" data-bind="click:showName">Show</button>

    </div>

</div>

我想获得具有&#34; data-bind&#34;的html元素例如,我想得到这样的东西:

<input type="text" value="" class="form-control input-sm" 
               data-bind="value:name,valueUpdate:'afterkeyup'" />

如果我改变上面这样的代码:

<div class="container">

        // Data-Bind is HERE Now
        <div class="well" data-id="myApp" data-bind="value:name,valueUpdate:'afterkeyup'">
        // Data-Bind is HERE Now

            <input type="text" value="" class="form-control input-sm" />

            <p class="info" data-bind="text:name"></p>

            <button class="btn btn-success" data-bind="click:showName">Show</button>

        </div>

    </div>

现在我想获得这样的元素:

<div class="well" data-id="myApp" data-bind="value:name,valueUpdate:'afterkeyup'">

如何获取为其设置数据绑定的get active元素的函数,当data-bind读取时我可以获得相应的元素

我需要一般的方式不是针对特定事件或......

4 个答案:

答案 0 :(得分:1)

您可以使用jquery属性选择器获取具有data-bind属性的所有元素。

$("*[data-bind]")

接下来,您可以通过各种方式优化选择器,例如仅考虑某些标签或仅选择结果的一部分,或者使用jquery过滤器:

$("div[data-bind], input[data-bind], p.data-carrier[data-bind]"); // consider only div, input, or  p elements, the latter only when having class data-carrier
$("*[data-bind]:first"); // use the first match only
$("*[data-bind]")[1];  // use  the second match only
$("*[data-bind]").filter(":even"); // use only matches with an even index  in the list of matches
$("*[data-bind]").each ( function ( idx, element ) { /* your code */ } ); // the most general approach: iterate through the results and decide upon each element what to do next

答案 1 :(得分:1)

如果您使用的是JQuery,则可以使用"has attribute" selector。例如:

$("[data-bind]")

答案 2 :(得分:0)

你是否在jquery中寻找这个:

var elem = $('.container').find('[data-bind]');

答案 3 :(得分:0)

使用$("*[data-bind]")[0].outerHTML

你将是元素的outerHTML

工作Fiddle