0

「data-」タイプを使用して html 要素内に情報を格納するスクリプトがあります。例えば

<div class="My-Widget commentsandrating" data-XYZ="MCAN"></div>
<div class="My-Widget rating" data-XYZ="MCAN"></div>
<div class="My-Widget comments" data-XYZ="MCAN"></div>

これらのいくつかは、データ XYZ を含むページにあり、いくつかは次のようになります。

<div class="My-Widget commentsandrating"></div>
<div class="My-Widget rating"></div>
<div class="My-Widget comments"></div>

data-xyz を html に追加しようとしています。

すべてのブラウザで、次の関数を使用します

item.setAttribute('data-XYZ', queryString2);  

IEを除くすべてのブラウザで機能します..

jQueryを使ってみた

jQuery.data(item, 'XYZ', queryString2);

代わりにこれを設定するには何を使用すればよいですか..

助けてくれてありがとう...

4

3 に答える 3

1

これをチェックして。それはあなたを助けるかもしれません.

HTML

<div class="My-Widget commentsandrating" data-XYZ="MCAN"></div>
<div class="My-Widget rating" data-XYZ="MCAN"></div>
<div class="My-Widget comments" data-XYZ="MCAN"></div>

<div class="My-Widget commentsandrating"></div>
<div class="My-Widget rating"></div>
<div class="My-Widget comments"></div>

<input type="button" id="set" value="set"/>
<input type="button" id="get" value="get"/>

JS

$(function(){
  var queryString2 = "MCAN";
  var sel = "My-Widget";
  var widgetArray = document.querySelectorAll( '.' + sel );
  $('#set').on('click', function(){
      $.each(widgetArray, function(index, item){
         $.data(item, 'XYZ',  queryString2 + index);
      });
  });

  $('#get').on('click', function(){
      $.each(widgetArray, function(index, item){
         alert($.data(item, 'XYZ'));
      });
  });
});

このデモをチェック

于 2012-10-27T11:36:46.760 に答える
1

試す

$(".commentsandrating").attr("data-xyz") //to get value

$(".commentsandrating").attr("data-xyz", value) //to set value
于 2012-10-27T11:51:41.147 に答える
0

どちらの答えも正しいですが、コードが何をするのかを説明していないと思います。
あなたの場合、次の 2 つのオプションがあります。

  1. を使用し$('element').data('key', 'value')ます。これにより、DOM 要素にデータが添付されます。その後、次の方法で取得できます$('element').data('key')
  2. で要素にカスタム属性を追加し、 で$('element').attr('key','value')取得し$('element').attr('key')ます。

同じことを行っていますが、どちらの方法も、それを達成する方法が異なります。たとえば、 を使用dataすると選択肢が増えます。JSON や配列データなど、必要なものを何でも保存できます。では$('element').attr('key','value')、文字列のみを格納できます。

選択に応じて:

(you choose to use data)
$('.commentsandrating').data('XYZ', 'MCAN');
var getData = $('.commentsandrating').data('XYZ'); // will return "MCAN"

(you choose to use attr)
$('.commentsandrating').attr('XYZ', 'MCAN');
var getData = $('.commentsandrating').attr('XYZ'); // will return "MCAN"
于 2012-10-27T12:01:22.580 に答える