0

我有一些像下面这样的 html 结构,我必须将每个容器内部 div 文本 val 存储到数据中,现在我像下面的 js 一样编码,它工作正常但感觉不太聪明,因为这些代码有点像做同样的事情存储数据名称相同的类名,但我必须输入并检查错字......做同样的事情是否可能更简单?

<div class="container1">
    <div class="aq">text</div>
    <div class="be">text</div>
    <div class="co">text</div>
    <div class="dp">text</div>
    ...
</div>
<div class="container1">
    <div class="aq">text</div>
    <div class="be">text</div>
    <div class="co">text</div>
    <div class="dp">text</div>
    ...
</div>

<div class="container2">
    <div class="aa">text</div>
    <div class="bd">text</div>
    <div class="cs">text</div>
    <div class="dw">text</div>
    ...
</div>
<div class="container2">
    <div class="aa">text</div>
    <div class="bd">text</div>
    <div class="cs">text</div>
    <div class="dw">text</div>
    ...
</div>

js

$(".container1").each(function(){
    $(this).data('aq', $(this).find('.aq').text());
    $(this).data('be', $(this).find('.be').text());
    $(this).data('co', $(this).find('.co').text());
    $(this).data('dp', $(this).find('.dp').text());
});
$(".container2").each(function(){
    $(this).data('aa', $(this).find('.aa').text());
    $(this).data('bd', $(this).find('.bd').text());
    $(this).data('cs', $(this).find('.cs').text());
    $(this).data('dw', $(this).find('.dw').text());
});
4

2 回答 2

0
$('[class^=container] div').each(function(){
    $(this).parent().data($(this).prop('class'), $(this).text());    
});

这是一个小提琴

于 2013-07-21T14:36:40.523 回答
0
$('div[class^=container]').children('div').each(function(){
  var $item = $(this), $container = $item.parent();
  $container.data($item.attr('class'), $item.text());
})

不过,所有容器都应该有一个公共类来避免class^=container选择器。也许你可以做class="container container1"

于 2013-07-21T14:37:16.173 回答