如何从href中提取名称attr?

时间:2012-04-30 13:35:33

标签: jquery

还是新的...对不起!我有一个多页面模板,每个页面的功能各不相同。如图所示,布局看起来相同,但页面可能用于设计,上传,定价或获取模板。

左侧是一个按钮,如果他们知道他们的产品尺寸。单击该按钮可根据需要将它们带到相应的页面(即,如果他们点击上传按钮,则上传页面)。该按钮是动态的,模板如下:

<a id="sg-start-button" class="button blue" href="javascript:void(0);" name="<?php echo $guide_action; ?>">Start Designing!</a>

该脚本应该从“name”属性中提取值并采取相应的行动。

我只是不确定如何指定jquery来查看该值。这就是我所拥有的:

$('#sg-start-button').click(function() {
    var $guide_action = $('#sg-start-button').I NEED THIS();
    if($guide_action == 'design') start_action(0);
    if($guide_action == 'upload') start_action(1);
    if($guide_action == 'template') start_action(2);
    if($guide_action == 'price') start_action(3);
});

我尝试了attr标签(.attr('name')),但那不是它。感谢任何帮助。谢谢!

5 个答案:

答案 0 :(得分:4)

$('#sg-start-button').click(function() 
{
    console.log($(this).prop('name'));
});

答案 1 :(得分:2)

$('#sg-start-button').click(function() {
  console.log($(this).attr('name'));
  console.log($(this).attr('href'));
});

我想你想要这样的东西:

$('#sg-start-button').click(function(e) {
    e.preventDefault();
    var $guide_action = $(this).attr('name');
    if($guide_action == 'design') start_action(0);
    if($guide_action == 'upload') start_action(1);
    if($guide_action == 'template') start_action(2);
    if($guide_action == 'price') start_action(3);
});

答案 2 :(得分:0)

attr("name")有效。 查看this jsfiddle

$('#sg-start-button').click(function() {
  var guide_action = $('#sg-start-button').attr("name");
  alert(guide_action);
});​

答案 3 :(得分:0)

您应该使用attr()方法。

所以你的代码看起来像是:

$('#sg-start-button').click(function() {

     var $guide_action = $('#sg-start-button').prop('name');

     switch($guide_action) {

        case 'design':
          start_action(0);
          break;

        case 'upload':
          start_action(1);
          break;

        case 'template':
          start_action(2);
          break;

        case 'price':
          start_action(3);
          break;

    }

});

答案 4 :(得分:0)

在您的示例中,您应该使用prop()

$('#sg-start-button').click(function() {
    var guideAction = $(this).prop('name')
});

然而,IMO使用data-x属性会更具语义性,如下所示:

<a id="sg-start-button" class="button blue" href="#" data-guide-action="<?php echo $guide_action; ?>">Start Designing!</a>
$('#sg-start-button').click(function(e) {
    e.preventDefault();
    var guideAction = $(this).data("guide-action")
});