按索引或data-attr分类

时间:2015-08-18 06:47:28

标签: javascript jquery for-loop

我有这段代码:

cout << qPrintable(QDate::currentDate().toString()) << endl;

现在我想传递i变量而不是1.

var i = 1;
if ($(this).attr('data-target="1"')){}

我是对的吗?

实际上我想做什么。我想点击if ($(this).attr('data-target="'+i+'"')){} li进入for循环点击h2。一个代码是否有针对目标多个元素的任何其他解决方案?

找到 fiddle

4 个答案:

答案 0 :(得分:2)

您没有类<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="output"></div>

的元素

试试这个,

ul

此外,您不需要在for循环中绑定事件。

Example

答案 1 :(得分:1)

试试这个:

// if you're using dynamic content for h2, then use .on instead for event delegation issues
$(document).on('click', '.UDSHead', function () {
  // remove class from li element
  $('li').removeClass('highLight');
  // get current element data-target value
  var target = $(this).data('target'); 
  // minus 1 as eq is zero based   
  $('ul li:eq(' + (target-1) + ')').addClass('highLight');    

});

<强> DEMO

答案 2 :(得分:1)

您可以为所有h2元素设置单击事件,然后根据点击的h2索引定位相应的lis:

.strowb1 a:hover {
  text-decoration: none;
}

<强> Working Demo

答案 3 :(得分:1)

根据文档http://api.jquery.com/attr/,如果要比较属性值,则必须这样做:

if($(this).attr( attributeName ) == value)

申请代码:

if( $(this).attr('data-target') == i ) {
  // more code
}

使用数据功能:

if( $(this).data('target') == i ) {
  // more code
}