jQuery:如何在$(this)中添加属性?

时间:2015-07-02 03:34:58

标签: jquery

示例我有10个文本框,每个文本框都有相同的属性,具有不同的值,例如,他们有一个具有不同值的属性data-same,我的代码中有类似的内容
{{1}我希望使用每个文本框的属性过滤结果。我该怎么办?我正在考虑做这样的事情$('#test').each(function(){ $(this).val(); });
但我不确定。

5 个答案:

答案 0 :(得分:1)

使用attr()

$('[data-same]').each(function(){
         var attributeValue = $(this).attr('data-same');
         //do whatever you want with the value
    });

此外,您的代码表明您具有多个元素的相同ID。避免这种情况,改为使用类或属性。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="whatever"
        />
    <View
        android:layout_width="20dp"
        android:layout_height="match_parent"
        />
</LinearLayout>

请参阅Why is it a bad thing to have multiple HTML elements with the same id attribute?

答案 1 :(得分:0)

$('#test').each(function(){
    $(this).val($(this).attr("data-same") );
});

答案 2 :(得分:0)

好的如果我的假设是正确的,您希望获得具有相同属性的所有public class Service extends android.app.Service { @Override public void onCreate() { super.onCreate(); Log.d("Service", "onCreate()"); Intent intent = new Intent(); sendBroadcast(intent); } @Override public int onStartCommand(Intent intent, int flags, int startId) { sendBroadcast(intent); return START_STICKY; } @Override public IBinder onBind(Intent intent) { Log.d("Service", "onBind()"); return null; } } ,那么下面的代码将起作用,我建议保留一个唯一的textbox: 对于每个元素,您可以尝试使用id代替classname

class="test"

答案 3 :(得分:0)

尝试使用map方法获取所有文本框值。

$(function(){
   var textBoxValues = $('input[data-same]').map(function(){
   return this.value
   }).get()
})

希望这可以帮助你...

答案 4 :(得分:0)

你可以使用jQuery过滤方法。

$(".test").filter(function(){ 
  if(parseInt($(this).attr('data-same')) == "somevalue")
   return $(this);
});

注意:对于元素组使用类名,对单个元素使用id。