Javascript 将css应用于使用Vue.js动态创建的表行
所以我有一个表,其中的行是使用v-for动态创建的:Javascript 将css应用于使用Vue.js动态创建的表行,javascript,jquery,html,css,vue.js,Javascript,Jquery,Html,Css,Vue.js,所以我有一个表,其中的行是使用v-for动态创建的: <table> <tr><th class='name'>Name</th><th>Surname</th></tr> <tr v-for='data in datas'><td class='name'>@{{data.name}}</td><td>@{{data.surname}}</td>
<table>
<tr><th class='name'>Name</th><th>Surname</th></tr>
<tr v-for='data in datas'><td class='name'>@{{data.name}}</td><td>@{{data.surname}}</td></tr>
</table>
只有标题消失。我想这是因为行是动态生成的,但是我如何处理呢
我试过:
使用该类在所有元素上生成每个函数,
编写诸如.css“display”和“none”之类的脚本,而不是隐藏
但这没用。奇怪,但每次火灾都会发出警报,但隐藏会忽略添加的元素
更具体的数据:
表格本身:
<table class="striped bordered responsive">
<thead>
<tr><th class="stat-table-creatives" colspan="2">Creative info</th><th>Impressions</th><th>Clicks</th><th>CTR</th><th>CPC</th><th>Price per unit</th><th>Sum</th><th class="stat-table-date">Date</th></tr>
</thead>
<tbody>
<tr v-for="stat in stats"><td class="stat-table-creatives">@{{ stat.creativeTitle }}</td><td class="stat-table-creatives">@{{ stat.creativeType }}</td><td>@{{ stat.impressions }}</td><td>@{{ stat.clicks }}</td><td>@{{ stat.ctr }}</td><td>@{{ stat.cpc }}</td><td>@{{ stat.client_price }}</td><td>@{{ stat.sum }}</td><td class="stat-table-date">@{{ stat.date }}</td></tr>
</tbody>
</table>
该函数是从另一个函数调用的,该函数在v-on上调用:单击假设这是因为对和使用了相同的类 然后尝试$.name-th.hide;$。name.hide; 也许会有帮助 UPD: 我不知道。。此代码工作正常:
<table id="tab" border='1'>
<tr><th class='name'>Name</th><th>Surname</th></tr>
<tr><td class='name'>n</td><td>s</td></tr>
</table>
<input id="click" type="button" value="Hide" />
jQuery与Vue动态创建的表配合得很好。检查这把小提琴: 我相信问题在于应用程序的加载方式、过滤器等 根据您试图访问表行的方式,您可能希望在查询DOM之前确保DOM已完全更新。您可以使用Vue的nextTick。 在Vue方法中,在尝试隐藏行之前,在您的示例中,调用getJsonForStats方法,您可以执行以下操作
this.$nextTick(function() {
//DOM updated and ready to rock and roll
this.getJsonForStats(..your filter params...);
}
为什么不添加这样的CSS定义呢;应用于domready应该可以:您是否尝试过$TableID.name.hide@好吧,但这和我使用“th.name”和“td.name”选择器是一样的,我也尝试过,但没有成功
<table id="tab" border='1'>
<tr><th class='name'>Name</th><th>Surname</th></tr>
<tr><td class='name'>n</td><td>s</td></tr>
</table>
<input id="click" type="button" value="Hide" />
$(document).ready(function(){
$("#click").click(function(){
$("#tab").find(".name").hide();
});
});
this.$nextTick(function() {
//DOM updated and ready to rock and roll
this.getJsonForStats(..your filter params...);
}