是否可以将js变量写入普通的html?

时间:2017-04-24 17:57:49

标签: javascript php jquery variables dynamic

我正在计算我的用户指定和动态显示的div ...

我的情况:

<div class="grid-stack" data-bind="foreach: {data: widgets, afterRender: afterAddWidget}">
<div id="streamcontainer1" class="streamcontainer grid-stack-item" data-bind="attr: {'data-gs-x': $data.x, 'data-gs-y': $data.y, 'data-gs-width': $data.width, 'data-gs-height': $data.height, 'data-gs-auto-position': $data.auto_position}">

</div>
</div>

在PHP中,我可以简单地在html中编写我的COUNT变量。这看起来像这样:

<div id="streamcontainer<?php echo $count ?>" class="" ... and so on...>

如何使用JS / Jquery存档相同的内容?

3 个答案:

答案 0 :(得分:2)

这是一个DOM操作问题。我们有什么需要合作?我们正在向页面添加div,他们有一个特定的类,我们想给他们一个ID。

function assignIds(){
  var list = document.getElementsByClassName('streamcontainer');
  for(var i=0; i<list.length;i++){
    if(list[i].id == undefined) // skip the ones that have already been done.
      list[i].id = 'streamContainer' + i.toString();
  }
}

现在我们只需要在某个事件上运行该函数,这样它就会不断更新。如果你只是希望在一段时间内完成,那是最简单的。 (setInterval)但是这可能会给你一个错误,那里还有一小段时间尚未分配该ID。您可以尝试监听任何AJAX / websocket进程将这些内容流式传输到页面上。

我们需要更多地了解您的用例,以了解要将其附加到哪个事件。

答案 1 :(得分:0)

如果没有Javascript Reactive Framework(Vue.js,React,AngularJS),您就无法做到这一点。 你可以用JS做的是在加载DOM时在元素中设置内容,例如:

document.getElementById("myElement").textContent = "Hello World!";

或者

document.getElementById("myElement").innerHTML = "<span>Hello World!</span>";

OBS: .innerHTML 可以插入HTML标记, .textContent 只需插入文字。

答案 2 :(得分:0)

您可以使用knockoutjs中的text绑定来显示HTML中的javascript值。有很多ko绑定可以帮助你。更多参考here

&#13;
&#13;
    var viewModel = {
        javascriptVariable: "I am javascript string"
    };
    ko.applyBindings(viewModel);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<span data-bind="text: javascriptVariable"></span>
&#13;
&#13;
&#13;