我可以在文本链接中使用data-属性吗?

时间:2014-07-22 01:27:25

标签: javascript jquery html

我有这个:

<a class="mylink" href="#" data-jSearchType="Category" data-jSearchValue="misc">Miscellaneous</a>
<a class="mylink" href="#" data-jSearchType="Category" data-jSearchValue="miscThis">Miscellaneous1</a>
<a class="mylink" href="#" data-jSearchType="Category" data-jSearchValue="miscThat">Miscellaneous2</a>
<a class="mylink" href="#" data-jSearchType="OtherCategory" data-jSearchValue="miscOther">Miscellaneous3</a>

我希望它能与之合作:

$(document).ready(function(){
$('.mylink').click(function () {
var myvalue1 = $('. mylink').index.(this).data-jSearchType;
var myvalue2 = $('. mylink').index.(this).data-jSearchValue;
$('<form action="mylinkReceiver.php" method="POST"/>')
    .append($('<input type="text" name="d" value="' + myvalue1 + '"> <input type="text" name="v" value="' + myvalue2 + '">'))
    .appendTo($(document.body))
    .submit();
});
});

点击链接应设置&#34; myvalue1&#34;和&#34; myvalue2&#34;,然后是提交表格中的值。

我已经看过几个有效的例子,但在我的安排中,变量仍未定义。

现在我的头痛了...

也许这个问题在涉及的附加链接中更加明确

1 个答案:

答案 0 :(得分:1)

这是 FIDDLE

您拥有包含大写字母的无效数据属性以及使用jQuery访问数据属性,它应该是.data('attributename')

<a class="mylink" href="#" data-type="Category" data-value="misc">Miscellaneous</a>

$(function() {
  $('.mylink').click(function(e) {
    e.preventDefault();
    var myvalue1 = $(this).data('type'),
        myvalue2 = $(this).data('value');

    $('<form action="mylinkReceiver.php" method="POST">' +
      '<input type="text" name="d" value="' + myvalue1 + '">' +
      '<input type="text" name="v" value="' + myvalue2 + '">' +
      '</form>').appendTo($('body')).submit();
  });
});

*注意:如果您愿意,可以使用data-jsearch-type&amp; data-jsearch-value然后使用例如$(this).data('jsearch-type')访问它<span class="mylink" data-type="Category" data-value="misc">Miscellaneous</span>

另外,你可以使用span代替锚点,例如

.mylink {
  font-size: 12px;
  color: #0098f4;
}
.mylink:hover {
  color: #666;
}

然后使用CSS

设置样式
{{1}}

在这种情况下,您无需在脚本中阻止默认操作。